Autor Tópico: Erro ao criar uma trigger no mysql  (Lida 318 vezes)

Monteiro

  • Iniciante
  • **
  • Mensagens: 62
    • Email
Erro ao criar uma trigger no mysql
« Online: Setembro 14, 2015, 11:16:28 am »
Olá
Estou tentando criar  uma trigger no mysql em uma tabela no evento Before Delete, segue abaixo:
begin
update pedidos set ValorTotal=ValorTotal-old.TotalUnitario where IdPedido=old.IdPedido;
end;

O MySQL me paresenta o erro:
SQL execution # 1054. unknown column 'IdPedido' in 'OLD'

Já verifiquei a tabela pedido e lá esta o campo IdPedido!!

O que poderia ser?

Obrigado!

flaviosfmartins

  • Iniciante
  • **
  • Mensagens: 97
    • Email
Re:Erro ao criar uma trigger no mysql
« Responder #1 Online: Setembro 14, 2015, 11:30:37 am »
ele diz que não existe no objeto OLD

Willian Fernando

  • Expert
  • *****
  • Mensagens: 1148
  • .....
    • Email
Re:Erro ao criar uma trigger no mysql
« Responder #2 Online: Setembro 14, 2015, 11:33:00 am »
Olá
Estou tentando criar  uma trigger no mysql em uma tabela no evento Before Delete, segue abaixo:
begin
update pedidos set ValorTotal=ValorTotal-old.TotalUnitario where IdPedido=old.IdPedido;
end;

O MySQL me paresenta o erro:
SQL execution # 1054. unknown column 'IdPedido' in 'OLD'

Já verifiquei a tabela pedido e lá esta o campo IdPedido!!

O que poderia ser?

Obrigado!

Monteiro sugiro procurar em um forum especifico de MySQL....

Haroldo

  • Expert
  • *****
  • Mensagens: 6275
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Erro ao criar uma trigger no mysql
« Responder #3 Online: Setembro 14, 2015, 11:44:40 am »
a trigger é em qual tabela?

Primeiro vc nào deve utilizar na before_delete, pois pode ocorrer um erro na deleção e a sua instrução será executada.

tenho essa trigger na after_delete, banco mysql e roda beleza:

CREATE TRIGGER `pedido_itens_aft_del` AFTER DELETE ON `pedido_itens` FOR EACH ROW
-- Edit trigger body code below this line. Do not edit lines above this one
begin
 update pedido
 set Desconto=0, ValorFrete=0,
     NroItens=NroItens-1,
     QtdeItens=QtdeItens-old.Quantidade,
     ValorTotal=ValorTotal-old.ValorItem
 where id=old.pedidoId;
End