Transacciones
Las transacciones son un conjunto de instrucciones SQL que tienen la cualidad de ejecutarse como una unidad, es decir, o se ejecutan todas o no se ejecuta ninguna.
1. Transacción comprometida
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from editoriales;
+-----+---------------+
| ide | nombre |
+-----+---------------+
| 1 | Prentice Hall |
| 2 | Alfaomega |
| 3 | Ra-Ma |
+-----+---------------+
3 rows in set (0.00 sec)
mysql> insert into editoriales values (0,"Trillas");
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from editoriales;
+-----+---------------+
| ide | nombre |
+-----+---------------+
| 1 | Prentice Hall |
| 2 | Alfaomega |
| 3 | Ra-Ma |
| 4 | Trillas |
+-----+---------------+
4 rows in set (0.00 sec)
2. Transacción no completada
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> delete from libros;
Query OK, 5 rows affected (0.00 sec)
mysql> select * from libros;
Empty set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from libros;
+-----+------+--------------------------+------------+
| idl | ide | titulo | fecha |
+-----+------+--------------------------+------------+
| 1 | 2 | Minería de Datos | 2017-11-01 |
| 2 | 3 | Python 3 Curso Práctico | 2017-05-30 |
| 3 | 3 | Unity 2017.X | 2017-10-01 |
| 4 | 2 | Inteligencia Artificial | 2018-01-01 |
| 5 | 2 | Aprender Raspberry Pi | 2017-01-01 |
+-----+------+--------------------------+------------+
5 rows in set (0.00 sec)
3. Inter-Bloqueo
Tiempo | Usuario 1 | Usuario 2 |
1 |
mysql> begin; mysql> delete from libros; mysql> select * from libros; |
|
2 |
mysql> begin; mysql> select * from libros; mysql> delete from libros; |
|
3 |
mysql> rollback; mysql> select * from libros; |
|
4 |
|
mysql> select * from libros; +-----+------+--------------------------+------------+ | idl | ide | titulo | fecha | +-----+------+--------------------------+------------+ | 1 | 2 | Minería de Datos | 2017-11-01 | | 2 | 3 | Python 3 Curso Práctico | 2017-05-30 | | 3 | 3 | Unity 2017.X | 2017-10-01 | | 4 | 2 | Inteligencia Artificial | 2018-01-01 | | 5 | 2 | Aprender Raspberry Pi | 2017-01-01 | +-----+------+--------------------------+------------+ 5 rows in set (0.00 sec) |