Criando
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.
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
Sintaxe:
DROP TRIGGER nome_da_trigger ON nome_da_tabela; |
Visualizando todas as triggers
Sintaxe:
SELECT * FROM pg_trigger; |
Nota
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.
Return new;
Uma trigger com evento BEFORE e com “return old” pode cancelar um INSERT ou um UPDATE.
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
- Como definir ou alterar a senha do banco de dados postgreSQL?
- Como fazer um backup da minha base PostgreSQL
- Como fazer um restore da minha base PostgreSQL
- Criando e Administrando uma Tabela no POSTGRESQL