PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Funzione trigger Postgres

Prima di tutto è necessario un prima trigger se vuoi modificare un valore della riga in corso di aggiornamento (o inserimento)

In secondo luogo non è necessario "aggiornare" la tabella, basta assegnare il nuovo valore alla riga NEW:

create or replace function pardota_masina_veikals() 
RETURNS trigger 
AS 
$pardota_masina$
begin
  IF NEW.sold=true THEN
    NEW.id_shop = NULL;
 END IF;
RETURN NEW;
END;
$pardota_masina$ 
LANGUAGE plpgsql;

CREATE TRIGGER pardota_masina_nevar_but_veikala 
   BEFORE INSERT OR UPDATE ON masinas 
   FOR EACH ROW EXECUTE PROCEDURE pardota_masina_veikals();