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

ERRO 1305 (42000):SAVEPOINT ... não existe


Como essa é a principal resposta no Google ao pesquisar "o ponto de salvamento não existe", adicionarei minha solução aqui também.

Eu tinha um TRUNCATE declaração dentro do código executado na minha transação, que causou um commit implícito e, assim, encerrou a transação. Criar um ponto de salvamento fora de uma transação não causa erro, ele simplesmente não será executado. Isso significa que a primeira vez que você notará que algo está errado é quando você tenta liberar seu ponto de salvamento / revertê-lo.

Esta é a lista completa de instruções que causam um commit implícito: https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html