já entendi (em parte) porque numa aplicação de cadastro da tabela ‘unidade’ recebo o seguinte erro:
Erro ao alterar a base de dados:
Can’t update table ‘unidade’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
tenho essa trigger na BD que, entre outras coisas, faz o seguinte:
- atualiza um registro na mesma tabela com outro valor.
- atualiza o mesmo registro dependendo de condições.
Pergunta: dividindo o trigger em parte BEFORE e o resto no AFTER questiono SE houver algum erro no trigger no BEFORE ele ainda executará o trigger AFTER ?
porque neste caso teria de desfazer as alterações que ele fez no BEFORE, e caio num circulo vicioso terrivel.
Facilitando a ideia: se voce atualizar o registro 4 dizendo que ele pertence a outra classe de produto, preciso tirar a quantidade dessa classe e atualizar o saldo da classe que selecionei agora.
Se faço a baixa no BEFORE e der erro no AFTER, tô ferrado.
agradeço ideias.