Syntax
------ 
SAVEPOINT identifier
ROLLBACK [WORK] TO [SAVEPOINT] identifier
RELEASE SAVEPOINT identifier
 
Description
----------- 
InnoDB supports the SQL statements SAVEPOINT,
ROLLBACK TO SAVEPOINT, RELEASE SAVEPOINT
and the optional WORK keyword for
ROLLBACK.
 
Each savepoint must have a legal MariaDB identifier. A
savepoint is a named sub-transaction.
 
Normally ROLLBACK undoes the changes performed by the whole
transaction. When used with the TO clause, it undoes the
changes performed after the specified savepoint, and erases
all subsequent savepoints. However, all locks that have been
acquired after the save point will survive. RELEASE
SAVEPOINT does not rollback or commit any changes, but
removes the specified savepoint.
 
When the execution of a trigger or a stored function begins,
it is not possible to use statements which reference a
savepoint which was defined from out of that stored program.
 
When a COMMIT (including implicit commits) or a ROLLBACK
statement (with no TO clause) is performed, they act on the
whole transaction, and all savepoints are removed.
 
Errors
 
If COMMIT or ROLLBACK is issued and no transaction was
started, no error is reported.
 
If SAVEPOINT is issued and no transaction was started, no
error is reported but no savepoint is created. When ROLLBACK
TO SAVEPOINT or RELEASE SAVEPOINT is called for a savepoint
that does not exist, an error like this is issued:
 
ERROR 1305 (42000): SAVEPOINT svp_name does not exist
 

 
 
 
 
 
 
 

URL: https://mariadb.com/kb/en/savepoint/