TCL significa Lenguajes de control de transacciones . Estos comandos se utilizan para mantener la coherencia de la base de datos y para la gestión de transacciones realizadas por los comandos DML.
Una Transacción es un conjunto de declaraciones SQL que se ejecutan en los datos almacenados en DBMS. Cada vez que se realiza una transacción, estas transacciones ocurren temporalmente en la base de datos. Entonces, para hacer que los cambios sean permanentes, usamos comandos TCL .
Los comandos TCL son:
- COMPROMETERSE
- RETROCEDER
- PUNTO DE GUARDADO
1. COMMIT:
este comando se utiliza para guardar los datos de forma permanente.
Cada vez que ejecutamos cualquiera de los comandos DDL como -INSERTAR, ELIMINAR o ACTUALIZAR, estos pueden revertirse si los datos no se almacenan de forma permanente. Entonces, para estar en el lado más seguro, se usa el comando COMMIT.
Sintaxis:
commit;
2. ROLLBACK:
este comando se usa para obtener los datos o restaurarlos al último punto de guardado o al último estado confirmado. Si, por algún motivo, los datos insertados, eliminados o actualizados no son correctos, puede revertir los datos a un punto de guardado en particular o, si no se ha realizado el punto de guardado, al último estado confirmado.
Sintaxis:
rollback;
3. SAVEPOINT:
Este comando se usa para guardar los datos en un punto en particular temporalmente, de modo que cuando sea necesario se pueda revertir a ese punto en particular.
Sintaxis :
Savepoint A;
Considere la siguiente Tabla Student:
Nombre | Marcas |
---|---|
John | 79 |
Alegre | sesenta y cinco |
shuzan | 70 |
UPDATE STUDENT SET NAME = ‘Sherlock’ WHERE NAME = ‘Jolly’; COMMIT; ROLLBACK;
Al usar este comando, puede actualizar el registro y guardarlo permanentemente usando el comando COMMIT .
Ahora después de COMMIT:
Nombre | Marcas |
---|---|
John | 79 |
sherlock | sesenta y cinco |
shuzan | 70 |
Si no se realizó la confirmación, los cambios realizados por el comando de actualización se pueden revertir.
Ahora si no se realiza COMMIT .
UPDATE STUDENT SET NAME = ‘Sherlock’ WHERE STUDENT_NAME = ‘Jolly’;
Después del comando de actualización, la tabla será:
Nombre | Marcas |
---|---|
John | 79 |
sherlock | sesenta y cinco |
shuzan | 70 |
Ahora, si se realiza ROLLBACK en la tabla anterior:
rollback;
Después de la reversión:
Nombre | Marcas |
---|---|
John | 79 |
Alegre | sesenta y cinco |
shuzan | 70 |
Si en la tabla anterior se realiza savepoint:
INSERT into STUDENT VALUES ('Jack', 95); Commit; UPDATE NAME SET NAME= ‘Rossie’ WHERE marks= 70; SAVEPOINT A; INSERT INTO STUDENT VALUES (‘Zack’, 76); Savepoint B; INSERT INTO STUDENT VALUES (‘Bruno’, 85); Savepoint C; SELECT * FROM STUDENT;
Nombre | Marcas |
---|---|
John | 79 |
Alegre | sesenta y cinco |
Rossy | 70 |
Jacobo | 95 |
Zack | 76 |
bruno | 85 |
Ahora, si retrocedemos al punto de guardado B:
Rollback to B;
La tabla resultante será-
Nombre | Marcas |
---|---|
John | 79 |
Alegre | sesenta y cinco |
Rossy | 70 |
Jacobo | 95 |
Zack | 76 |
Ahora, si retrocedemos al punto de guardado A:
Rollback to A;
La tabla resultante será-
Nombre | Marcas |
---|---|
John | 79 |
Alegre | sesenta y cinco |
Rossy | 70 |
Jacobo | 95 |
Así que se trataba de comandos TCL en SQL (lenguaje de control de transacciones) con ejemplos.