PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres-Trigger-Funktion

Als erstes braucht man ein vorher auslösen, wenn Sie einen Wert der zu aktualisierenden (oder einzufügenden) Zeile ändern möchten

Zweitens müssen Sie die Tabelle nicht "aktualisieren", weisen Sie einfach den neuen Wert der NEW-Zeile zu:

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();