Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Mark1 Membro Junior
Registrado: Quarta-Feira, 7 de Mai de 2008 Mensagens: 365
|
Enviada: Seg Mai 22, 2017 9:47 am Assunto: Trigger não atualiza tabela [RESOLVIDO] |
|
|
Bom dia pessoal.
Montei uma trigger (Firebird) para atualizar a tabela de agenda de contatos sempre que o telefone for alterado na tabela de terceiros. Porém se o campo telefone estiver vazio a tabela de agenda não é atualizada. Mas se eu alterar novamente e o campo telefone já estiver preenchido aí funciona. Minha trigger:
Código: | AS
begin
if (OLD.ter_fone1 <> NEW.ter_fone1) then
BEGIN
update agenda_contatos SET FONE1 = NEW.ter_fone1 Where CodCad = old.ter_codigo;
END
end |
Tem alguma coisa errada na trigger?
Grato
Editado pela última vez por Mark1 em Seg Mai 22, 2017 12:57 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Mai 22, 2017 9:56 am Assunto: |
|
|
Bom dia,
O problema está ocorrendo quando o campo está nulo?
Se for experimente adicionar condições específicas para detectar essa situação:
Código: | if ((OLD.ter_fone1 <> NEW.ter_fone1) or
(OLD.ter_fone1 is null) or
(NEW.ter_fone1 is null)) then |
Espero que ajude
Editado pela última vez por imex em Dom Out 01, 2023 4:10 pm, num total de 1 vez |
|
Voltar ao Topo |
|
|
Mark1 Membro Junior
Registrado: Quarta-Feira, 7 de Mai de 2008 Mensagens: 365
|
Enviada: Seg Mai 22, 2017 10:20 am Assunto: |
|
|
imex escreveu: | Bom dia,
O problema está ocorrendo quando o campo está nulo?
Se for experimente adicionar condições específicas para detectar essa situação:
Código: | if ((OLD.ter_fone1 <> NEW.ter_fone1) or
(OLD.ter_fone1 is null) or
(NEW.ter_fone1 is null)) then |
Espero que ajude
|
Grande Imex !!
Resolveu. Só não entendi porque tenho que fazer este tratamento. O NULL não é o mesmo que NADA? Se inseri um valor e o mesmo for comparado com NADA então é diferente. É o que eu acho.
Porém, independente disto agradeço pela ajuda.
Abraço |
|
Voltar ao Topo |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Mai 22, 2017 11:47 am Assunto: |
|
|
O null tem um comportamento diferente de todos os outros valores.
O null não é igual a nenhum valor (nem mesmo outro null) e não é diferente de nenhum valor.
Abs |
|
Voltar ao Topo |
|
|
|