Enviado em 15/04/2015 - 17:09h
Olá,
Eu tenho um trigger e preciso que ela seja disparada quando QUALQUER tabela do banco der um delete.
Trigger
Teria algum tipo de código como esse abaixo?
Eu tenho um trigger e preciso que ela seja disparada quando QUALQUER tabela do banco der um delete.
Trigger
CREATE OR REPLACE FUNCTION delete_data()
RETURNS trigger AS
$BODY$
DECLARE
sql_delete text;
i int;
pkname text;
idval text;
BEGIN
pkname = get_pk(TG_TABLE_NAME);
idval = get_field(OLD, pkname);
sql_delete = 'DELETE FROM '||TG_TABLE_NAME||' WHERE '||pkname||'='||idval;
DELETE FROM tbl_sincronizacao WHERE id = CAST(idval as int);
INSERT INTO tbl_sincronizacao (tabela,id,acao,sql) values (TG_TABLE_NAME,CAST(idval as int),3,sql_delete);
return NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION delete_data()
OWNER TO postgres;
Teria algum tipo de código como esse abaixo?
CREATE TRIGGER delete_data_alldb
BEFORE DELETE
ON ALL DATABASE
FOR EACH ROW
EXECUTE PROCEDURE delete_data();