SAVEPOINTidentifierROLLBACK TO SAVEPOINTidentifier
Starting from MySQL 4.0.14 and 4.1.1, InnoDB
supports the SQL statements SAVEPOINT and
ROLLBACK TO SAVEPOINT.
The SAVEPOINT statement sets a named
transaction save point with a name of
identifier. If the current
transaction has a save point with the same name, the old save
point is deleted and a new one is set.
The ROLLBACK TO SAVEPOINT statement rolls
back a transaction to the named save point. Modifications that
the current transaction made to rows after the save point was
set are undone in the rollback, but InnoDB
does not release the row locks that were
stored in memory after the save point. (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 save
point are deleted.
If the ROLLBACK TO SAVEPOINT statement
returns the following error, it means that no savepoint with the
specified name exists:
ERROR 1181: Got error 153 during ROLLBACK
All save points of the current transaction are deleted if you
execute a COMMIT, or a
ROLLBACK that does not name a save point.

User Comments
Savepoints apply only to an already started transaction. They do not start a transaction themselves. So if you're getting 'SAVEPOINT foobar does not exist' errors, make sure you've actually started a transaction _and_ made the savepoint.
Add your own comment.