Una transacción es una unidad de trabajo que se realiza en una base de datos. Las transacciones son unidades o secuencias de trabajo realizadas en un orden lógico, ya sea manualmente por el usuario o automáticamente por algún programa de base de datos.
Una transacción es la propagación de uno o más cambios en una base de datos. Por ejemplo, si crea, actualiza o elimina un registro de una tabla, entonces está realizando una transacción en la tabla. Es importante monitorear las transacciones para garantizar la integridad de los datos y manejar los errores de la base de datos.
De hecho, agrupará muchas consultas SQLite en un grupo y las ejecutará todas juntas como parte de una transacción.
Las transacciones tienen las siguientes cuatro propiedades estándar, comúnmente denominadas ACID.
Atomicidad – Asegura la finalización exitosa de todas las operaciones dentro del bloque de trabajo; de lo contrario, la transacción se aborta en el punto de falla y las operaciones anteriores se revierten a su estado original.
Secuencia – Asegura que la base de datos cambie de estado correctamente después de una transacción confirmada con éxito.
Aislamiento – Permite que las transacciones funcionen de forma independiente y transparente entre sí.
Durabilidad – Asegura que el resultado o efecto de una transacción comprometida persista en caso de falla del sistema.
A continuación se muestran los siguientes comandos que se utilizan para administrar transacciones:
EMPEZAR UNA OFERTA – Empiece un trato.
COMPLETO – Para guardar sus cambios, puede utilizar alternativamente FIN DE LA TRANSACCIÓN mando.
RETROCEDER – Cancelar cambios.
Los comandos de control de transacciones se utilizan solo con los comandos DML INSERT, UPDATE y DELETE. No se pueden usar al crear tablas o descartarlas, porque estas operaciones se confirman automáticamente en la base de datos.
Las transacciones se pueden iniciar con BEGIN TRANSACTION o simplemente con el comando BEGIN. Estas transacciones generalmente persisten hasta que se encuentra el siguiente COMMIT o ROLLBACK. Sin embargo, la transacción también se revertirá si se cierra la base de datos o se produce un error. A continuación se muestra la sintaxis simple para iniciar una transacción.
BEGIN; or BEGIN TRANSACTION;
El comando COMMIT es un comando transaccional que se usa para guardar los cambios causados por una transacción en la base de datos.
El comando COMMIT guarda todas las transacciones en la base de datos desde el último comando COMMIT o ROLLBACK.
A continuación se muestra la sintaxis del comando COMMIT.
COMMIT; or END TRANSACTION;
El comando ROLLBACK es un comando transaccional que se utiliza para revertir transacciones que aún no se han guardado en la base de datos.
ROLLBACK solo se puede utilizar para deshacer transacciones desde el último COMMIT o ROLLBACK.
A continuación se muestra la sintaxis del comando ROLLBACK.
ROLLBACK;
Ejemplo
Considere la tabla EMPRESA con las siguientes entradas.
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Ahora comencemos una transacción y eliminemos los registros de la tabla que tienen edad = 25. Luego use el comando ROLLBACK para deshacer todos los cambios.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> ROLLBACK;
Ahora, si marca la tabla EMPRESA, todavía tiene las siguientes entradas:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Comencemos otra transacción y eliminemos los registros de la tabla que tienen edad = 25, y finalmente usamos el comando COMMIT para confirmar todos los cambios.
sqlite> BEGIN; sqlite> DELETE FROM COMPANY WHERE AGE = 25; sqlite> COMMIT;
Si ahora comprueba que todavía existen las siguientes entradas en la tabla EMPRESA:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 3 Teddy 23 Norway 20000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
🚫