SAVEPOINT identifier ROLLBACK TO SAVEPOINT identifier
En MySQL 5.0, InnoDB
soporta los comandos SQL
SAVEPOINT
y ROLLBACK TO
SAVEPOINT
.
El comando SAVEPOINT
crea un punto dentro de
una transacción con un nombre identifier
. Si
la transacción actual tiene un punto con el mismo nombre, el
antiguo se borra y se crea el nuevo.
El comando ROLLBACK TO SAVEPOINT
deshace una
transacción hasta el punto nombrado. Las modificaciones que la
transacción actual hace al registro tras el punto se deshacen
en el rollback, pero InnoDB
no libera los bloqueos de registro que se
almacenaron en memoria tras el punto . (Tenga en cuenta que para
un nuevo registro insertado, la información de bloqueo se
realiza a partir del ID de transacción almacenado en el
registro; el bloqueo no se almacena separadamente en memoria. En
este caso, el bloqueo de registro se libera al deshacerse todo.)
Los puntos creados tras el punto nombrado se borran.
Si un comando retorna el siguiente error, significa que no existe ningún punto con el nombre especificado:
ERROR 1181: Got error 153 during ROLLBACK
Todos los puntos de la transacción actual se borran si ejecuta
un COMMIT
, o un ROLLBACK
que no nombre ningún punto.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.