1. BUENOS DIAS EDGAR OMAR PACHECOmc. EDGAR OMAR BAÑUELOSTALLER DE BD 1
2. Por defecto, MySQL se ejecuta con el modo autocommit activado. Si usa tablas transaccionales (como InnoDB o BDB), puede desactivar el modo autocommit con el siguiente comando: SET AUTOCOMMIT=0; 2
3. Tras deshabilitar el modo autocommit poniendo la variable AUTOCOMMIT a cero, debe usar COMMIT para almacenar los cambios en disco o ROLLBACK si quiere ignorar los cambios hechos desde el comienzo de la transacción. 3
4. Si quiere deshabilitar el modo autocommit para una serie única de comandos, puede usar el comando START TRANSACTION: START TRANSACTION; SELECT @A:=SUM(salary) FROM table1 WHERE type=1; UPDATE table2 SET summary=@A WHERE type=1; COMMIT; 4
5. BEGIN y BEGIN WORK se soportan como alias para START TRANSACTION para iniciar una transacción. START TRANSACTION es sintaxis SQL estándar y es la forma recomendada para iniciar una transacción ad-hoc . El comando BEGIN difiere del uso de la palabra clave BEGIN que comienza un comando compuesto BEGIN ... END. El último no comienza una transacción. 5
6. Puede comenzar una transacción así: START TRANSACTION WITH CONSISTENT SNAPSHOT; WITH CONSISTENT SNAPSHOT ER_WARNING_NOT_COMPLETE_ROLLBACK. 6
13. mysql> LOCK TABLE t WRITE, t AS t1 WRITE; mysql> INSERT INTO t SELECT * FROM t; ERROR 1100: Table 't' wasnotlockedwith LOCK TABLES mysql> INSERT INTO t SELECT * FROM t AS t1; 13
14. Si bloquea una tabla usando un alias, debe referirse a ella en sus consultas usando este alias: mysql> LOCK TABLE t AS myalias READ; mysql> SELECT * FROM t; ERROR 1100: Table 't' wasnotlockedwith LOCK TABLES mysql> SELECT * FROM t AS myalias; 14
15. LOCK TABLES trans READ, customer WRITE; SELECT SUM(value) FROM trans WHERE customer_id=some_id; UPDATE customer -> SET total_value=sum_from_previous_statement -> WHERE customer_id=some_id; UNLOCK TABLES; 15