SQL提交与回滚

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

提交和回滚SQL

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

SQL提交

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

SQL提交语法

COMMIT;

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

SQL 提交示例

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

CUSTOMER ID CUSTOMER NAME STATE COUNTRY
1 Akash Delhi India
2 Amit Hyderabad India
3 Jason California USA
4 John Texas USA

现在让我们从上表中删除一个州为“Texas”的行。

DELETE from Customer where State = 'Texas';
SQL Commit

如果我们不发布COMMIT,则发布DELETE命令;如果会话关闭,则由于DELETE命令而进行的更改将丢失。使用COMMIT更新命令。

DELETE from Customer where State = 'Texas';
COMMIT;
SQL transaction commit

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

提交后的输出

CUSTOMER ID CUSTOMER NAME STATE COUNTRY
1 Akash Delhi India
2 Amit Hyderabad India
3 Jason California USA
SQL Commit example

请执行SQL回滚

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

SQL 回滚的语法

ROLLBACK;

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

示例:SQL 回滚

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

CUSTOMER ID CUSTOMER NAME STATE COUNTRY
1 Akash Delhi India
2 Amit Hyderabad India
3 Jason California USA
4 John Texas USA

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

DELETE from Customer where State = 'Texas';
SQL Delete without rollback

如果我们发布ROLLBACK,将会恢复由DELETE命令执行的更改。更新命令为ROLLBACK。

DELETE from Customer where State = 'Texas';
ROLLBACK;
SQL rollback example

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

回滚后的输出

CUSTOMER ID CUSTOMER NAME STATE COUNTRY
1 Akash Delhi India
2 Amit Hyderabad India
3 Jason California USA
4 John Texas USA
sql rollback command
发表回复 0

Your email address will not be published. Required fields are marked *