[firebase-br] Usar trigger insert or update
Paulo Geloramo
paulogeloramo em terra.com.br
Sáb Set 26 09:42:04 -03 2009
Olá Pessoal,
Firebird 2.1.3.18185
Usar uma trigger insert or update ou
usar duas trigger, conforme abaixo:
Se o campo TESTE não foi alterado na tabela FILHO,
usar NEW.TESTE pode retornar NULL?
Qual a abordagem mais indicada para o firebird 2.1.3?
1. uma trigger
CREATE TRIGGER TR_TESTE FOR FILHO
ACTIVE AFTER INSERT OR UPDATE POSITION 0
AS
BEGIN
UPDATE PAI
SET TESTE = NEW.TESTE
WHERE ID = NEW.ID;
END
ou
2. duas trigger
CREATE TRIGGER TR_TESTE FOR FILHO
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
UPDATE PAI
SET TESTE = NEW.TESTE
WHERE ID = NEW.ID;
END
e
CREATE TRIGGER TR_TESTE FOR FILHO
ACTIVE AFTER UPDATE POSITION 0
AS
BEGIN
UPDATE PAI
SET TESTE = OLD.TESTE
WHERE ID = OLD.ID;
END
Fiz teste com o primeiro caso, mas em alguns testes,
não esta atualizando teste, mas na maioria dos testes
a primeira opção funciona, não entendi porque ora
funciona e ora falha.
Por segurança estou pensando em adotar a segunda opção,
mas fiquei na dúvida, do por quê falha as vezes?
Como estão usando?
--
Paulo Geloramo
Mais detalhes sobre a lista de discussão lista