Manipulação de triggers no PostgreSQL

Atenção: Essa wiki é apenas um exemplo que mostra o funcionamento de triggers no PostgreSQL.Recomendamos que use esse documento apenas como base para o desenvolvimento de sua aplicação.

Criando

Manipulação de triggers no PostgreSQL Acesse sua área de hospedagem via SSH SSH, e digite o seguinte comando para acessar sua base de dados:

 psql -h HOST -U nome_da_base nome_do_usuário

Substitua HOST pelo endereço de conexão com a base, assim como o usuário e nome do banco.

Após, será solicitado a senha de acesso.

Manipulação de triggers no PostgreSQL Sintaxe (criação das tabelas e das triggers que manipularão tais tabelas) :

CREATE TABLE teste1 ( campoA INT NOT NULL, campoB INT NOT NULL );   CREATE TABLE teste2 ( campoC INT NOT NULL, campoD INT NOT NULL );   CREATE LANGUAGE plpgsql;   CREATE OR REPLACE FUNCTION insert_minha_function() RETURNS TRIGGER AS ' BEGIN INSERT INTO teste2 (campoC, campoD) values (5,25); RETURN new; END 'LANGUAGE plpgsql;   CREATE TRIGGER insert_minha_trigger AFTER INSERT ON teste1   FOR EACH ROW EXECUTE PROCEDURE insert_minha_function();   CREATE OR REPLACE FUNCTION delete_minha_function() RETURNS TRIGGER AS ' BEGIN INSERT INTO teste2 (campoC, campoD) values (6,26); RETURN old; END 'LANGUAGE plpgsql;   CREATE TRIGGER delete_minha_trigger BEFORE DELETE ON teste1   FOR EACH ROW EXECUTE PROCEDURE delete_minha_function();

Excluindo

Manipulação de triggers no PostgreSQLSintaxe:

DROP TRIGGER nome_da_trigger ON nome_da_tabela;

Visualizando todas as triggers

Manipulação de triggers no PostgreSQLSintaxe:

SELECT * FROM pg_trigger;

Nota

Manipulação de triggers no PostgreSQL Na Locaweb as bases de dados já vêm por padrão com a linguagem plpgsql.Dessa forma, as triggers devem ser criadas nessa linguagem. As outras linguagens, não instalamos por questões de segurança no ambiente compartilhado.

Manipulação de triggers no PostgreSQL Return new;

    Uma trigger com evento BEFORE e com “return old” pode cancelar um INSERT ou um UPDATE.

    Manipulação de triggers no PostgreSQL Return old;

    • Para registros excluídos (DELETE), e para os valores antigos dos registros alterados (UPDATE).

    uma trigger com evento BEFORE e com “return new” pode cancelar um DELETE ou um UPDATE.

    Veja também