Las transacciones agrupan un conjunto de tareas en una única unidad de ejecución. Cada transacción comienza con un trabajo específico y finaliza cuando todas las tareas del grupo se completan con éxito. Si alguna de las tareas falla, la transacción falla. Por tanto, una transacción tiene sólo dos resultados: éxito o falla .
Ejemplo de una transacción para transferir 0 de la cuenta A a la cuenta B:
1. read(A) 2. A:= A – 150 3. write(A) 4. read(B) 5. B:= B + 150 6. write(B)>
Los pasos incompletos resultan en 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 ÁCIDO propiedades. Estas propiedades pueden garantizar la ejecución simultánea de múltiples transacciones sin conflictos.
Propiedades de la transacción
- Atomicidad: El resultado de una transacción puede ser completamente exitoso o completamente fallido. Toda la transacción debe revertirse si una parte falla.
- Consistencia: Las transacciones mantienen restricciones de integridad al mover la base de datos de un estado válido a otro.
- Aislamiento: Las transacciones simultáneas están aisladas entre sí, lo que garantiza la precisión de los datos.
- Durabilidad: Una vez que se confirma una transacción, sus modificaciones permanecen vigentes incluso en caso de una falla del sistema.
¿Cómo implementar el comando de control de transacciones usando SQL?
Los siguientes comandos se utilizan para controlar las transacciones. Es importante tener en cuenta que estas declaraciones no se pueden usar al crear tablas y solo se usan con comandos DML como: INSERTAR , ACTUALIZAR , y BORRAR .
Comando COMENZAR TRANSACCIÓN
Indica el punto de inicio de una transacción explícita o local.
Sintaxis:
COMENZAR TRANSACCIÓN nombre_transacción;
Comando ESTABLECER TRANSACCIÓN
Los valores de las propiedades de la transacción actual, como el nivel de aislamiento de la transacción y el modo de acceso, se establecen mediante la instrucción SET TRANSACTION en MySQL.
Sintaxis:
ESTABLECER TRANSACCIÓN [LEER ESCRIBIR | SOLO LECTURA ];
Comando 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 que se llama comprometido . El comando COMMIT guarda todas las transacciones en la base de datos desde el último comando COMMIT o ROLLBACK.
Sintaxis:
COMPROMETERSE;
cadena java a entero
Ejemplo:
Tabla de muestra 1

producción
A continuación se muestra un ejemplo que eliminaría aquellos registros de la tabla que tienen edad = 20 y luego COMMITIRía los cambios en la base de datos.
Consulta
DELETE FROM Student WHERE AGE = 20; COMMIT;>
Producción
Por lo tanto, se eliminarían dos filas de la tabla y la instrucción SELECT tendría el siguiente aspecto:

producción
Comando RETROCEDER
Si se produce algún error con cualquiera de las declaraciones agrupadas de SQL, se deben cancelar todos los cambios. El proceso de revertir los cambios se llama Retroceder . Este comando solo se puede utilizar para deshacer transacciones desde que se emitió el último comando COMMIT o ROLLBACK.
Sintaxis del comando ROLLBACK:
RETROCEDER;
Ejemplo:
Del ejemplo anterior Tabla de muestra1 ,
Elimine aquellos registros de la tabla que tengan edad = 20 y luego REVERSE los cambios en la base de datos.
Consulta
DELETE FROM Student WHERE AGE = 20; ROLLBACK;>
Producción

producción
Comando PUNTO DE GUARDAR
PUNTO DE GUARDADO crea puntos dentro de los grupos de transacciones en los que ROLLBACK.
Un SAVEPOINT es un punto en una transacción en el que puede revertir la transacción hasta un punto determinado sin revertir toda la transacción.
Sintaxis del comando Savepoint:
PUNTO DE GUARDADO PUNTO DE GUARDADO_NOMBRE;
Este comando se utiliza únicamente en la creación de SAVEPOINT entre todas las transacciones.
En general, ROLLBACK se utiliza para deshacer un grupo de transacciones.
Sintaxis para retroceder al comando Savepoint:
VOLVER A SAVEPOINT_NAME;
10 de 100
puede VOLVER a cualquier PUNTO DE GUARDADO en cualquier momento para devolver los datos apropiados a su estado original.
Ejemplo:
Del ejemplo anterior Tabla de muestra1 , Elimine aquellos registros de la tabla que tengan edad = 20 y luego ROLLBACK los cambios en la base de datos manteniendo los puntos de guardado.
Consulta
SAVEPOINT SP1; //Savepoint created. DELETE FROM Student WHERE AGE = 20; //deleted SAVEPOINT SP2; //Savepoint created.>
Aquí SP1 es el primer SAVEPOINT creado antes de la eliminación. En este ejemplo se ha realizado una eliminación.
Después de la eliminación, se crea nuevamente SAVEPOINT SP2.
Producción

producción
Se ha realizado la eliminación, supongamos que cambió de opinión y decidió ROLLBACK al PUNTO DE GUARDADO que identificó como SP1 que estaba antes de la eliminación.
La eliminación se deshace con esta declaración.
Consulta
ROLLBACK TO SP1; //Rollback completed>
Producción

producción
Comando LIBERAR PUNTO DE GUARDADO
Este comando se utiliza para eliminar un PUNTO DE GUARDADO que haya creado.
Sintaxis:
LIBERAR PUNTO DE GUARDADO NOMBRE DE PUNTO DE GUARDADO
Una vez que se ha liberado un SAVEPOINT, ya no puede 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 siguiente.
Conclusión
- Las declaraciones SQL se agrupan mediante transacciones.
- Prometen que se harán todos los cambios o ninguno.
- La confiabilidad está garantizada por las cualidades ACID de atomicidad, consistencia, aislamiento y durabilidad.
- Inicie una transacción con BEGIN TRANSACTION y finalícela con COMMIT o ROLLBACK para completar o deshacer los cambios.