The world's most popular open source database
En forma predeterminada, cada cliente se que conecta al servidor MySQL
comienza con el modo de autocommit habilitado, lo cual automáticamente
confirma (commit) cada sentencia SQL ejecutada. Para utilizar
transacciones de múltiples sentencias se puede deshabilitar el modo
autocommit con la sentencia SQL SET AUTOCOMMIT = 0 y
emplear COMMIT y ROLLBACK para
confirmar o cancelar la transacción. Si se desea dejar activado
autocommit, se pueden encerrar las transacciones entre las sentencias
START TRANSACTION y
COMMIT o ROLLBACK. El siguiente
ejemplo muestra dos transacciones. La primera se confirma, la segunda se
cancela.
shell> mysql test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 3.23.50-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A))
-> ENGINE=InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM CUSTOMER;
+------+--------+
| A | B |
+------+--------+
| 10 | Heikki |
+------+--------+
1 row in set (0.00 sec)
mysql>
En APIs como PHP, Perl DBI/DBD, JDBC, ODBC, o la interface de llamadas C
estándar de MySQL, se pueden enviar sentencias de control de
transacciones como COMMIT al servidor MySQL en forma
de cadenas, igual que otras sentencias SQL como
SELECT o INSERT. Algunas APIs
también ofrecen funciones o métodos especiales para confirmación y
cancelación de transacciones.
É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.

