sexta-feira, 12 de fevereiro de 2010

Criando uma Trigger

Bom vo fazer um exemplo de como criar um gatilho em uma tabela, o usuário deve possuir o privilégio TRIGGER na tabela. 

Na versão atual, gatilhos de declaração (STATEMENT triggers) não estão implementados. 

Consulte o comando DROP TRIGGER para obter informações sobre como remover gatilhos. 
Exemplos

Verificar se o código do distribuidor existe na tabela de distribuidores antes de inserir ou atualizar uma linha da tabela filmes: 


CREATE TRIGGER se_dist_existe
  BEFORE INSERT OR UPDATE ON filmes FOR EACH ROW
  EXECUTE PROCEDURE verificar_chave_primaria ('did', 'distribuidores', 'did');

Antes de remover um distribuidor, ou de atualizar o seu código, remover todas as referências para a tabela filmes: 


CREATE TRIGGER se_filme_existe
  BEFORE DELETE OR UPDATE ON distribuidores FOR EACH ROW
  EXECUTE PROCEDURE verificar_chave_primaria (1, 'CASCADE', 'did', 'filmes', 'did');

O segundo exemplo também pode ser implementado usando uma chave estrangeira, como em:
 
CREATE TABLE distribuidores (
  did DECIMAL(3),
  nome VARCHAR(40),
  CONSTRAINT se_filme_existe
  FOREIGN KEY(did) REFERENCES filmes
  ON UPDATE CASCADE ON DELETE CASCADE  
);

Está situação eu fiz no PostgreSQL com (SQL99).
Bom embreve farei mais posts acompanhem.

Nenhum comentário:

Postar um comentário

 Copyright © 2008-2010 All Right Reserved - Todos os Direitos Reservados Elder Stroparo