PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL :Vérification de NEW et OLD dans une fonction pour un déclencheur

L'approche habituelle pour faire en sorte qu'une fonction de déclenchement fasse des choses différentes selon la façon dont le déclencheur a été déclenché consiste à vérifier l'opération de déclenchement via 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;

Sans rapport, mais :le nom de la langue est un identifiant. Ne le citez pas en utilisant des guillemets simples.