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.