Vou colocar um exemplo mais detalhado.

Tenho uma tabela chamada CLIENTE com os seguintes campos codcli, razao e 
fantasia.

Tenho também a tabela CLIENDERECOS com os seguintes campos codcli, seqendereco, 
logradouro, numero, complemento, ...

A tabela CLIENDERECOS tem o seguinte relacionamento com a tabela CLIENTE.

ALTER TABLE clienderecos
  ADD CONSTRAINT nome_qualquer FOREIGN KEY (codcli)
      REFERENCES cliente(codcli) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE;

e também tenho a seguinte trigger na tabela CLIENDERECOS.

CREATE TRIGGER log_clienderecos
AFTER INSERT OR UPDATE OR DELETE
  ON agendaaltprecitem
  FOR EACH ROW
  EXECUTE PROCEDURE armazenar_log();

quando executo o seguinte comando:

UPDATE cliente SET codcli = 2 WHERE codcli = 1;

O banco irá executar a trigger, pois a CONSTRAINT irá alterar o codcli na 
tabela CLIENDERECOS.

O que eu gostaria de saber, é se o PostgreSQL tem algum parâmetro que me 
informa que quem disparou a TRIGGER log_clienderecos foi a CONSTRAINT 
nome_qualquer.





  ----- Original Message ----- 
  From: JotaComm 
  To: Comunidade PostgreSQL Brasileira 
  Sent: Friday, June 26, 2009 4:38 PM
  Subject: Re: [pgbr-geral] Saber de onde veio o disparo da trigger


  Opa,

  Não consegui entender o que você deseja :(


  2009/6/26 Anderson Aguilar Ferreira <[email protected]>

    Boa tarde pessoal

    Será que alguém sabe se o PostgreSQL tem algum parâmetro que informa de 
onde a trigger foi disparada ??

    Exemplo:

    Faço a alteração na chave de relação de uma tabela PAI. Automaticamente, 
por causa da FOREIGN KEY que relaciona as tabelas filhas com esta PAI, sera 
feito a alteração da chave nas tabelas filhas também. Caso as tabelas filhas 
tenha TRIGGERs, será executado no ato da alteração, por exemplo: trigger que 
armazena log de alterações, entre outras.

    O que eu gostaria de saber é se o PostgreSQL tem algum parâmetro de TRIGGER 
que informa que a trigger da tabela filha está sendo disparada por uma FOREIGN 
KEY(relacionamento) ou por alguma tabela, ou por alguma outra trigger ???

    _______________________________________________
    pgbr-geral mailing list
    [email protected]
    https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




  []s
  -- 
  JotaComm
  http://jotacomm.wordpress.com
  http://www.dextra.com.br/postgres



------------------------------------------------------------------------------


  _______________________________________________
  pgbr-geral mailing list
  [email protected]
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a