SQL提交与回滚详解:数据库事务管理完全指南

数据库最重要的方面是存储数据和操作数据的能力。提交(COMMIT)和回滚(ROLLBACK)是两个关键词,用于存储和还原数据存储过程。这些关键词通常在事务上下文中使用。让我们来了解一下提交和回滚的详细信息。

SQL提交和回滚

提交(COMMIT)和回滚(ROLLBACK)是针对事务(transactions)进行的操作。事务是针对数据库执行的最小工作单元。它是一系列按照逻辑顺序的指令。事务可以由程序员手动执行,也可以使用自动化程序触发。

SQL提交

提交是SQL命令,用于保存事务执行的更改。当发出提交命令时,它会保存自上次提交或回滚以来的所有更改。

SQL提交语法

COMMIT;

提交的语法只包含一个关键词COMMIT。

SQL提交示例

让我们考虑以下表格,以更好地理解”提交”。顾客表:

客户ID 客户姓名 州/省 国家
1 Akash 德里 印度
2 Amit 海得拉巴 印度
3 Jason 加利福尼亚 美国
4 John 德克萨斯 美国

现在让我们从上表中删除一个州为”德克萨斯”的行。

DELETE from Customer where State = '德克萨斯';
SQL提交

如果我们不执行提交(COMMIT),仅执行删除命令;如果会话关闭,则由于删除命令而进行的更改将丢失。使用提交命令保存更改。

DELETE from Customer where State = '德克萨斯';
COMMIT;
SQL事务提交

使用上述的命令序列将确保在删除命令后的更改成功保存。

提交后的输出

客户ID 客户姓名 州/省 国家
1 Akash 德里 印度
2 Amit 海得拉巴 印度
3 Jason 加利福尼亚 美国
SQL提交示例

SQL回滚

回滚(ROLLBACK)是SQL命令,用于撤销事务所执行的更改。当发出回滚命令时,它会恢复自上次提交或回滚以来的所有更改。

SQL回滚的语法

ROLLBACK;

回滚的语法只包括一个关键字ROLLBACK。

SQL回滚示例

让我们考虑下面的表格以更好地理解回滚。客户表:

客户ID 客户姓名 州/省 国家
1 Akash 德里 印度
2 Amit 海得拉巴 印度
3 Jason 加利福尼亚 美国
4 John 德克萨斯 美国

现在让我们从上面的表中删除一行,其中州为”德克萨斯”。

DELETE from Customer where State = '德克萨斯';
不带回滚的SQL删除

如果我们执行回滚(ROLLBACK),将会恢复由删除命令执行的更改。使用回滚命令撤销更改。

DELETE from Customer where State = '德克萨斯';
ROLLBACK;
SQL回滚示例

使用以上命令序列将确保在删除命令后成功恢复变更。

回滚后的输出

客户ID 客户姓名 州/省 国家
1 Akash 德里 印度
2 Amit 海得拉巴 印度
3 Jason 加利福尼亚 美国
4 John 德克萨斯 美国
SQL回滚命令
bannerAds