terça-feira, 23 de fevereiro de 2016

Criando TRIGGERS no Postgres 9.2

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.

O primeiro passo é criar uma função que será executada toda vez que a tabela referente sofrer alteração.

OBS: A variável NEW se trata dos dados que estão vindo da alteração da tabela referente.

CREATE OR REPLACE FUNCTION atualiza_tabela () RETURNS trigger as $registro$
BEGIN
INSERT INTO tabelaX (campo1, campo2, campo3) 
VALUES ( NEW.dado1, NEW.dado12, NEW.dado3,
);

RETURN NEW;
END;
$registro$ LANGUAGE plpgsql;

Agora criamos literalmente a TRIGGER que será acionada toda vez que a tabela referente sofrer alteração, chamando a função que criamos acima.

CREATE TRIGGER TR_atualiza_tabela AFTER INSERT OR UPDATE ON tabela_referente
    FOR EACH ROW EXECUTE PROCEDURE atualiza_tabela();

Fonte: http://www.postgresql.org/docs/9.2/static/plpgsql-trigger.html

Nenhum comentário: