📜  SQL中COMMIT和ROLLBACK的区别

📅  最后修改于: 2021-09-13 02:11:14             🧑  作者: Mango

1.提交
SQL 中的 COMMIT 是一种事务控制语言,用于将事务中所做的更改永久保存在表/数据库中。数据库在执行后无法恢复其先前的状态。

考虑以下带有记录的 STAFF 表:

职员

例子:

sql> 
SELECT *
FROM Staff
WHERE Allowance = 400;

sql> COMMIT; 

输出:

因此,SELECT 语句产生了由三行组成的输出。

2.回滚
SQL 中的 ROLLBACK 是一种事务控制语言,用于撤消尚未保存在数据库中的事务。该命令仅用于撤消自上次 COMMIT 以来的更改。

考虑以下带有记录的 STAFF 表:

职员

例子:

sql> 
SELECT *
FROM EMPLOYEES
WHERE ALLOWANCE = 400;

sql> ROLLBACK; 

输出:

因此,SELECT 语句与 ROLLBACK 命令产生相同的输出。

COMMIT 和 ROLLBACK 的区别:

COMMIT ROLLBACK
COMMIT permanently saves the changes made by current transaction. ROLLBACK undo the changes made by current transaction.
Transaction can not undo changes after COMMIT execution. Transaction reaches its previous state after ROLLBACK.
When transaction is successful, COMMIT is applied. When transaction is aborted, ROLLBACK occurs.