Sintaxis de START TRANSACTION

3,584 views

Published on

Sintaxis de START TRANSACTION

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,584
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sintaxis de START TRANSACTION

  1. 1. BUENOS DIAS <br />EDGAR OMAR PACHECOmc. EDGAR OMAR BAÑUELOSTALLER DE BD<br />1<br />
  2. 2. Por defecto, MySQL se ejecuta con el modo autocommit activado.<br />Si usa tablas transaccionales (como InnoDB o BDB), puede desactivar el modo autocommit con el siguiente comando: <br />SET AUTOCOMMIT=0;<br />2<br />
  3. 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. <br />3<br />
  4. 4. Si quiere deshabilitar el modo autocommit para una serie única de comandos, puede usar el comando START TRANSACTION: <br />START TRANSACTION;<br />SELECT @A:=SUM(salary) FROM table1 WHERE type=1;<br />UPDATE table2 SET summary=@A WHERE type=1;<br />COMMIT;<br />4<br />
  5. 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. <br />5<br />
  6. 6. Puede comenzar una transacción así: <br />START TRANSACTION WITH CONSISTENT SNAPSHOT;<br />WITH CONSISTENT SNAPSHOT <br />ER_WARNING_NOT_COMPLETE_ROLLBACK. <br />6<br />
  7. 7. SET TRANSACTION ISOLATION LEVEL.<br />7<br />
  8. 8. Sentencias que causan una ejecución (commit) implícita<br />8<br />
  9. 9. Sintaxis de SAVEPOINT y ROLLBACK TO SAVEPOINT<br />9<br />
  10. 10. SAVEPOINT identifier<br />ROLLBACK TO SAVEPOINT identifier<br />10<br />
  11. 11. Sintaxis de LOCK TABLES y UNLOCK TABLES<br />11<br />
  12. 12. LOCK TABLES<br />tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}<br /> [, tbl_name [AS alias] {READ [LOCAL] | [LOW_PRIORITY] WRITE}] ...<br />UNLOCK TABLES<br />12<br />
  13. 13. mysql&gt; LOCK TABLE t WRITE, t AS t1 WRITE;<br />mysql&gt; INSERT INTO t SELECT * FROM t;<br />ERROR 1100: Table &apos;t&apos; wasnotlockedwith LOCK TABLES<br />mysql&gt; INSERT INTO t SELECT * FROM t AS t1;<br />13<br />
  14. 14. Si bloquea una tabla usando un alias, debe referirse a ella en sus consultas usando este alias: <br />mysql&gt; LOCK TABLE t AS myalias READ;<br />mysql&gt; SELECT * FROM t;<br />ERROR 1100: Table &apos;t&apos; wasnotlockedwith LOCK TABLES<br />mysql&gt; SELECT * FROM t AS myalias;<br />14<br />
  15. 15. LOCK TABLES trans READ, customer WRITE;<br />SELECT SUM(value) FROM trans WHERE customer_id=some_id;<br /> UPDATE customer<br /> -&gt; SET total_value=sum_from_previous_statement<br /> -&gt; WHERE customer_id=some_id;<br /> UNLOCK TABLES;<br />15<br />
  16. 16. Sintaxis de SET TRANSACTION<br />16<br />
  17. 17. SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL<br />{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }<br />17<br />
  18. 18. Descripción de los niveles de aislamiento<br />18<br />
  19. 19. con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);<br />19<br />

×