Sintaxe de SAVEPOINT
e ROLLBACK TO SAVEPOINT
A partir do MariaDB 4.0.14 e 4.1.1. o InnoDB
suporta os comando SQL SAVEPOINT
e ROLLBACK TO SAVEPOINT
.
SAVEPOINT identificador
Esta instrução configura um savepoint de uma transação cujo nome é identificador
. Se a transação atual já tiver um savepoint com o mesmo nome, o savepointy antigo é deletado é o novo é definido.
ROLLBACK TO SAVEPOINT identificador
Esta instrução faz o roll back de uma transação até o savepoint indicado. Modificações feitas nesta transação após o savepoint foram definidas como desfeitas no roll back, mas o InnoDB
não libera o lock de linha que forma arnmazenados na memória depois do savepoint. (Note que para uma nova linha inserida, a informação do lock é carregada pala ID da transação armazenada na linha; o lock não é armazenado separadamente na memória. Neste caso, o lock de linha é liberado no undo.) Sevapoints que foram definidos após o sevepoint indicado são deletados.
Se o comando retorna o seguinte erro, significa que não existem savepoints como o nome especificado.
ERROR 1181: Got error 153 during ROLLBACK
Todos os savepoints da transação atual são deletados se você executar um COMMIT
ou um ROLLBACK
que não chamou um savepoint.