Conoce qué son, para qué sirven, y cómo implementar transacciones en SQL, con muchos ejemplos.

1. ¿Qué son las transacciones?

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 Propiedades ACID.

2. ¿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 DML como: INSERT, UPDATE y DELETE.

SET TRANSACTION

Coloca un nombre en una transacción. Esta declaración especifica las características de la transacción. Toma una lista de uno o más valores característicos separados por comas. Cada valor de característica establece el nivel de aislamiento de transacción o el modo de acceso.

Sintaxis:

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 registraran  juntos en la base de datos se llama committed (confirmado). El comando COMMIT guarda todas las transacciones en la base de datos desde el último comando COMMIT o ROLLBACK.

Sintaxis:

COMMIT;

Ejemplo: tabla 1

Estudiante
CODNOMBREDIRECCIÓNTELÉFONOEDAD
1FRANKTELLO93020166818
2JUANDIONICIO94551833118
3JOSEMOROTE98961841520
4RUBENTELLO95589234818
3JOSEMOROTE98961841520
2JUANDIONICIO94551833118

A continuación se muestra un ejemplo que eliminaría los registros de la tabla que tienen edad = 20 y luego enviaría los cambios a la base de datos.

Consulta:

DELETE FROM Estudiante WHERE EDAD = 20;
COMMIT;

Salida:

Por lo tanto, se eliminarían dos filas de la tabla y la sentencia SELECT se vería como.

Estudiante
CODNOMBREDIRECCIÓNTELÉFONOEDAD
1FRANKTELLO93020166818
2JUANDIONICIO94551833118
4RUBENTELLO95589234818
2JUANDIONICIO94551833118

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 rollback. Este comando solo se puede usar para deshacer transacciones desde que se emitió el último comando COMMIT o ROLLBACK.

Sintaxis:

ROLLBACK;

Ejemplo:

A partir del ejemplo anterior de tabla 1. Borramos los registros de la tabla que tienen edad = 20 y luego usamos un ROLLBACK para revertir los cambios hechos en la base de datos.

Consulta:

DELETE FROM Estudiante WHERE EDAD = 20;
ROLLBACK;

Salida:

Estudiante
CODNOMBREDIRECCIÓNTELÉFONOEDAD
1FRANKTELLO93020166818
2JUANDIONICIO94551833118
3JOSEMOROTE98961841520
4RUBENTELLO95589234818
3JOSEMOROTE98961841520
2JUANDIONICIO94551833118

SAVEPOINT

Crea puntos dentro de los grupos de transacciones en los que se puede RETROCEDER (ROLLBACK). Un SAVEPOINT es un punto en una transacción en el que se puede volver la transacción a un punto determinado sin revertir la transacción entera.

Sintaxis:

SAVEPOINT NOMBRE_SAVEPOINT;

Este comando se utiliza sólo en la creación de SAVEPOINT entre todas las transacciones. En general, el ROLLBACK se usa para deshacer un grupo de transacciones.

ROLLBACK TO NOMBRE_SAVEPOINT;

Puedes usar el ROLLBACK a cualquier SAVEPOINT en cualquier momento para devolver los datos apropiados a su estado original.

Ejemplo:

A partir del ejemplo anterior tabla 1, Eliminar los registros de la tabla que tienen edad = 20 y luego volver a los cambios en la base de datos mediante el mantenimiento de Savepoints.

Consulta:

SAVEPOINT SP1;
//Savepoint creado.
DELETE FROM Estudiante WHERE EDAD= 20;
//Eliminar
SAVEPOINT SP2;
//Savepoint creado.

Aquí, SAVEPOINT SP1 se crea por primera vez antes de la eliminación. En este ejemplo, se realizó una eliminación.

Después de la eliminación de nuevo se crea SAVEPOINT SP2.

Salida:

Estudiante
CODNOMBREDIRECCIÓNTELÉFONOEDAD
1FRANKTELLO93020166818
2JUANDIONICIO94551833118
4RUBENTELLO95589234818
2JUANDIONICIO94551833118

Se ha realizado la eliminación, supongamos que ha cambiado de opinión y decidió usar ROLLBACK al SAVEPOINT que identificó como SP1, que es antes de la eliminación. La eliminación se deshace por esta declaración.

ROLLBACK TO SP1;
//Rollback completo.
Estudiante
CODNOMBREDIRECCIÓNTELÉFONOEDAD
1FRANKTELLO93020166818
2JUANDIONICIO94551833118
3JOSEMOROTE98961841520
4RUBENTELLO95589234818
3JOSEMOROTE98961841520
2JUANDIONICIO94551833118

Tenga en cuenta que la primera eliminación tuvo lugar a pesar de que retrocedió al SP1, que es el primer SAVEPOINT.

RELEASE SAVEPOINT

Este comando se utiliza para eliminar un SAVEPOINT que hayas creado.

Sintaxis:

RELEASE SAVEPOINT NOMBRE_SAVEPOINT

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

Se utiliza para iniciar una transacción de base de datos y para especificar las características de la transacción que sigue.

Transacciones SQL
5 (100%) 10 votos




Alex Walton

Alex Walton

Aprender desde Cero es tu web para conocer todo sobre informática. Mi nombre es Alex y me gustaría que dejes tu comentario ante cualquier duda o aporte.
"Si no lo consigues a la primera, llámalo versión 1.0"

Comparte este artículo:

Facebook
Google+
Twitter
LinkedIn
WhatsApp
Email
Deja tu comentario
Contenido Relacionado
Comentarios en SQL con ejemplos

Comentarios en SQL

Como cualquier lenguaje de programación, los comentarios también importan mucho en SQL. En este conjunto aprenderemos sobre cómo escribir comentarios ...
Leer Más
Vistas en SQL

Vistas en SQL

Las vistas en SQL son una especie de tablas virtuales. Una vista también tiene filas y columnas, ya que están ...
Leer Más
DDL, DML, TCL y DCL en SQL

DDL, DML, TCL y DCL en SQL

En este artículo, discutiremos el lenguaje de definición de datos, el lenguaje de manipulación de datos, el lenguaje de control ...
Leer Más
SOBRE NOSOTROS

Somos una web que busca el libre conocimiento en temas relacionados a la informática.

Todos los cursos son gratis. La publicidad nos mantiene activos así que por favor visita a nuestros anunciantes.

RECIBE MUCHOS REGALOS