PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:Verificando NEW e OLD em uma função para um gatilho


A abordagem usual para fazer uma função de gatilho fazer coisas diferentes dependendo de como o gatilho foi acionado é verificar a operação do gatilho por meio de 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;

Não relacionado, mas:o nome do idioma é um identificador. Não o cite usando aspas simples.