Transacciones en SQL

Avatar Tutor | octubre 22, 2018

Las transacciones agrupan un conjunto de tareas en una sola unidad de ejecución. Cada transacción comienza con una tarea específica y finaliza cuando todas las tareas del grupo se completan con éxito. Si cualquiera de las tareas falla, la transacción falla. Por lo tanto, una transacción tiene solo dos resultados: éxito o fracaso.

Los pasos incompletos dan como resultado el fracaso de la transacción. Una transacción de base de datos, por definición, debe ser atómica, consistente, aislada y duradera. Estos son conocidos popularmente como principios ACID.

¿Cómo implementar transacciones utilizando SQL?

Los siguientes comandos se usan para controlar las transacciones. Es importante tener en cuenta que estas declaraciones no se pueden usar al crear tablas y solo se usan con los comandos como – INSERT, UPDATE y DELETE.

SET TRANSACTION: asigna un nombre a una transacción.

SET TRANSACTION [ READ WRITE | READ ONLY ];

COMMIT: si todo está en orden con todas las declaraciones dentro de una sola transacción, todos los cambios se registran juntos en la base de datos se llama confirmado. El comando COMMIT guarda todas las transacciones en la base de datos desde el último comando COMMIT o ROLLBACK.

Ejemplo

A continuación se muestra un ejemplo que eliminaría esos registros de la tabla que tienen age = 20 y luego harán COMMIT a los cambios en la base de datos.

DELETE FROM Student WHERE AGE = 20;
COMMIT;

ROLLBACK: Si ocurre algún error con cualquiera de las sentencias agrupadas de SQL, todos los cambios deben abortarse. El proceso de revertir los cambios se llama revertir. Este comando solo se puede usar para deshacer transacciones desde que se emitió el último comando COMMIT o ROLLBACK.

Ejemplo

Borre esos registros de la tabla que tienen age = 20 y luego reinicie los cambios en la base de datos.

DELETE FROM Student WHERE AGE = 20;
ROLLBACK;

SAVEPOINT: crea puntos dentro de los grupos de transacciones en los que se puede hacer ROLLBACK.

Un SAVEPOINT es un punto de una transacción en el que puede revertir la transacción a un cierto punto sin revertir la transacción completa.

En general, ROLLBACK se utiliza para deshacer un grupo de transacciones.

Sintaxis para revertir al comando Savepoint:

ROLLBACK TO NOMBRE_SAVEPOINT;

RELEASE SAVEPOINT: este comando se utiliza para eliminar un SAVEPOINT que haya creado.

Sintaxis:

RELEASE SAVEPOINT NOMBRE_SAVEPOINT

Una vez que se ha liberado un SAVEPOINT, ya no puede usar el comando ROLLBACK para deshacer las transacciones realizadas desde el último SAVEPOINT.


Written by Tutor