SQL提交和回滚

时间:2020-02-23 14:32:24  来源:igfitidea点击:

数据库最重要的方面是存储数据的能力和处理数据的能力。
COMMIT和ROLLBACK是两个这样的关键字,它们用于顺序存储和还原数据存储过程。
这些关键字通常在事务中使用。

让我们尝试了解有关COMMIT和ROLLBACK的详细信息。

SQL提交和回滚

COMMIT和ROLLBACK在事务上执行。
事务是针对数据库执行的最小工作单元。
它是逻辑顺序的指令序列。
交易可以由程序员手动执行,也可以使用自动化程序触发。

SQL提交

COMMIT是用于存储事务执行的更改的SQL命令。
发出COMMIT命令时,它将保存自上次COMMIT或者ROLLBACK以来的所有更改。

SQL提交的语法

COMMIT;

提交的语法仅包含一个关键字COMMIT。

SQL提交示例

让我们考虑下表,以更好地理解Commit。

顾客:

CUSTOMER IDCUSTOMER NAMESTATECOUNTRY
1AkashDelhiSan Franceco
2AmitHyderabadSan Franceco
3JasonCaliforniaUSA
4JohnTexasUSA

现在,让我们从上表中删除一个状态为" Texas"的行。

DELETE from Customer where State = 'Texas';

如果我们不发布COMMIT,则发布DELETE命令,并且如果会话关闭,则由于DELETE命令所做的更改将丢失。

使用COMMIT更新命令

DELETE from Customer where State = 'Texas';
COMMIT;

使用上述命令序列将确保change post DELETE命令将成功保存。

提交后输出

CUSTOMER IDCUSTOMER NAMESTATECOUNTRY
1AkashDelhiSan Franceco
2AmitHyderabadSan Franceco
3JasonCaliforniaUSA

SQL回滚

ROLLBACK是用于还原事务执行的更改的SQL命令。
发出ROLLBACK命令时,它将还原自上次COMMIT或者ROLLBACK之后的所有更改。

SQL回滚的语法

ROLLBACK;

回滚的语法仅包含一个关键字ROLLBACK。

SQL回滚示例

让我们考虑下表,以更好地理解回滚。

顾客:

CUSTOMER IDCUSTOMER NAMESTATECOUNTRY
1AkashDelhiSan Franceco
2AmitHyderabadSan Franceco
3JasonCaliforniaUSA
4JohnTexasUSA

现在,让我们从上表中删除一个状态为" Texas"的行。

DELETE from Customer where State = 'Texas';

如果发布ROLLBACK,则发布DELETE命令,它将恢复由于delete命令而执行的更改。

使用ROLLBACK更新了命令

DELETE from Customer where State = 'Texas';
ROLLBACK;

使用上述命令序列将确保change post DELETE命令将被成功还原。

回滚后输出

CUSTOMER IDCUSTOMER NAMESTATECOUNTRY
1AkashDelhiSan Franceco
2AmitHyderabadSan Franceco
3JasonCaliforniaUSA
4JohnTexasUSA