START TRANSACTION, COMMIT, and ROLLBACK Syntax
SAVEPOINT and ROLLBACK TO SAVEPOINT Syntax
LOCK TABLES and UNLOCK TABLES Syntax
SET TRANSACTION Syntax
SAVEPOINT and ROLLBACK TO SAVEPOINT Syntax
Starting from MySQL 4.0.14 and 4.1.1, InnoDB supports the SQL commands
SAVEPOINT and ROLLBACK TO SAVEPOINT.
SAVEPOINT identifier
This statement sets a named transaction savepoint whose name is
identifier. If the current transaction already has a
savepoint with the same name, the old savepoint is deleted and a
new one is set.
ROLLBACK TO SAVEPOINT identifier
This statement rolls back a transaction to the named savepoint.
Modifications that this transaction made to rows after the savepoint
was set are undone in the rollback, but InnoDB does not
release the row locks that were stored in memory after the savepoint.
(Note that for a new inserted row, the lock information is carried by
the transaction ID stored in the row; the lock is not separately
stored in memory. In this case, the row lock is released in the undo.)
Savepoints that were set at a later time than the named savepoint are
deleted.
If the command returns the following error, it means that no savepoint with the specified name exists:
ERROR 1181: Got error 153 during ROLLBACK
All savepoints of the current transaction are deleted if you execute a
COMMIT, or a ROLLBACK that does not name a savepoint.