Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - Trigger para atualizar a mesma tabela após a inserção


Parece que você não pode fazer tudo isso em um gatilho. De acordo com a documentação :

Dentro de uma função ou gatilho armazenado, não é permitido modificar uma tabela que já está sendo usada (para leitura ou escrita) pela instrução que invocou a função ou gatilho.

De acordo com esta resposta , parece que você deve:

crie um procedimento armazenado, que insira/atualize a tabela de destino e, em seguida, atualize as outras linhas, todas em uma transação.

Com um proc armazenado, você confirmará manualmente as alterações (inserir e atualizar). Eu não fiz isso no MySQL, mas este post parece um bom exemplo.