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.

Retornar