TCL代表事务控制语言。这些命令用于维护数据库的一致性和管理 DML 命令所做的事务。
事务是对存储在 DBMS 中的数据执行的一组 SQL 语句。每当进行任何事务时,这些事务都会临时发生在数据库中。因此,为了使更改永久化,我们使用TCL命令。
TCL 命令是:
- 犯罪
- 回滚
- 保存点
1. 提交:
该命令用于永久保存数据。
每当我们执行任何 DDL 命令(如 -INSERT、DELETE 或 UPDATE)时,如果数据没有永久存储,这些命令都可以回滚。所以为了更安全,使用 COMMIT 命令。
句法:
commit;
2. 回滚:
该命令用于获取数据或将数据恢复到上次保存点或上次提交状态。如果由于某些原因插入、删除或更新的数据不正确,您可以将数据回滚到特定的保存点,或者如果保存点未完成,则回滚到上次提交的状态。
句法:
rollback;
3.保存点:
该命令用于临时保存特定点的数据,以便在需要时可以回滚到该特定点。
语法:
Savepoint A;
考虑以下表学生:
Name | Marks |
---|---|
John | 79 |
Jolly | 65 |
Shuzan | 70 |
UPDATE STUDENT
SET NAME = ‘Sherlock’
WHERE NAME = ‘Jolly’;
COMMIT;
ROLLBACK;
通过使用此命令,您可以使用COMMIT命令更新记录并永久保存它。
现在在 COMMIT 之后:
Name | Marks |
---|---|
John | 79 |
Sherlock | 65 |
Shuzan | 70 |
如果未执行提交,则可以回滚更新命令所做的更改。
现在,如果没有执行COMMIT。
UPDATE STUDENT
SET NAME = ‘Sherlock’
WHERE STUDENT_NAME = ‘Jolly’;
更新命令后,表将是:
Name | Marks |
---|---|
John | 79 |
Sherlock | 65 |
Shuzan | 70 |
现在如果对上表执行ROLLBACK:
rollback;
回滚后:
Name | Marks |
---|---|
John | 79 |
Jolly | 65 |
Shuzan | 70 |
如果在上表中执行了保存点:
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;
Name | Marks |
---|---|
John | 79 |
Jolly | 65 |
Rossie | 70 |
Jack | 95 |
Zack | 76 |
Bruno | 85 |
现在,如果我们回滚到保存点 B:
Rollback to B;
结果表将是-
Name | Marks |
---|---|
John | 79 |
Jolly | 65 |
Rossie | 70 |
Jack | 95 |
Zack | 76 |
现在,如果我们回滚到保存点 A:
Rollback to A;
结果表将是-
Name | Marks |
---|---|
John | 79 |
Jolly | 65 |
Rossie | 70 |
Jack | 95 |
所以这完全是关于 SQL(事务控制语言)中的TCL 命令和示例。