MySQL comienza cada conexión de cliente con el modo de ejecución automática (autocommit) habilitado por defecto. Cuando la ejecución automática está habilitada, MySQL realiza la confirmación luego de cada sentencia SQL, si dicha sentencia no devuelve un error.
Si se tiene desactivado el modo de ejecución automática y se cierra una conexión sin hacer una confirmación explícita de una transacción, MySQL cancelará dicha transacción.
Si una sentencia SQL devuelve un error, la confirmación o cancelación dependen del error. Consulte Sección 15.15, “Tratamiento de errores de InnoDB”.
Las siguientes sentencias SQL (y sus sinónimos) provocan en MySQL una confirmación implícita de la transacción en curso:
ALTER TABLE
, BEGIN
,
CREATE INDEX
, DROP
DATABASE
, DROP INDEX
,
DROP TABLE
, LOAD MASTER
DATA
, LOCK TABLES
,
RENAME TABLE
, SET
AUTOCOMMIT=1
, START
TRANSACTION
, TRUNCATE
,
UNLOCK TABLES
.
Antes de MySQL 5.0.8, CREATE TABLE
provocaba la confirmación si se empleaba el registro
binario (binary logging). A partir de MySQL 5.0.8, las
sentencias CREATE TABLE
,
TRUNCATE TABLE
, DROP
DATABASE
, y CREATE DATABASE
provocan una confirmación implícita.
La sentencia CREATE TABLE
en
InnoDB
se procesa como una transacción
individual. Esto significa que un
ROLLBACK
emitido por el usuario no
cancelará las sentencias CREATE TABLE
hechas durante una transacción.
É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.