Um dos recursos mais simples de um SGDB e comuns à serem utilizados são as TRIGGERS ou “Gatilhos’, estes executam um processo antes ou depois de uma determinada ação no banco de dados. No exemplo abaixo é inserido um registro em uma tabela após uma tabela referente sofrer alteração em seus registros.
n
nO primeiro passo é criar uma função que será executada toda vez que a tabela referente sofrer alteração.
n
nOBS: A variável NEW se trata dos dados que estão vindo da alteração da tabela referente.
n
n
nCREATE OR REPLACE FUNCTION atualiza_tabela () RETURNS trigger as $registro$
n
n BEGIN
n
n INSERT INTO tabelaX (campo1, campo2, campo3)
n
n VALUES ( NEW.dado1, NEW.dado12, NEW.dado3,
n
n );
n
n
n
n RETURN NEW;
n
n END;
n
n$registro$ LANGUAGE plpgsql;
n
n
n
nAgora criamos literalmente a TRIGGER que será acionada toda vez que a tabela referente sofrer alteração, chamando a função que criamos acima.
n
n
nCREATE TRIGGER TR_atualiza_tabela AFTER INSERT OR UPDATE ON tabela_referente
n FOR EACH ROW EXECUTE PROCEDURE atualiza_tabela();
n
n
n
nFonte: http://www.postgresql.org/docs/9.2/static/plpgsql-trigger.html
n