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';
如果我们不发布COMMIT,则发布DELETE命令;如果会话关闭,则由于DELETE命令而进行的更改将丢失。使用COMMIT更新命令。
DELETE from Customer where State = 'Texas';
COMMIT;
使用上述的命令序列将确保在DELETE命令后的更改成功保存。
提交后的输出
CUSTOMER ID | CUSTOMER NAME | STATE | COUNTRY |
---|---|---|---|
1 | Akash | Delhi | India |
2 | Amit | Hyderabad | India |
3 | Jason | California | USA |
请执行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';
如果我们发布ROLLBACK,将会恢复由DELETE命令执行的更改。更新命令为ROLLBACK。
DELETE from Customer where State = 'Texas';
ROLLBACK;
使用以上命令序列将确保在删除命令后成功恢复变更。
回滚后的输出
CUSTOMER ID | CUSTOMER NAME | STATE | COUNTRY |
---|---|---|---|
1 | Akash | Delhi | India |
2 | Amit | Hyderabad | India |
3 | Jason | California | USA |
4 | John | Texas | USA |