A partir do MySQL 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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.