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

PostgreSQL:Prüfen auf NEW und OLD in einer Funktion für einen Trigger

Der übliche Ansatz, um eine Triggerfunktion dazu zu bringen, verschiedene Dinge zu tun, je nachdem, wie der Trigger ausgelöst wurde, besteht darin, die Triggeroperation durch TG_OP

CREATE OR REPLACE FUNCTION update_table_count()
RETURNS trigger AS
$$
DECLARE 
  updatecount INT;
BEGIN
  if tg_op = 'UPDATE' then 
    select count(*) into updatecount from source_table where id = new.id;
    update dest_table set count=updatecount where id = new.id;
  elsif tg_op = 'DELETE' then 
    ... do something else
  end if;
  RETURN NEW;
END;
$$
LANGUAGE plpgsql;

Unabhängig, aber:Der Sprachname ist ein Identifikator. Zitieren Sie es nicht mit einfachen Anführungszeichen.