SQL 面试题 目录

SQL 中如何开始、提交和回滚事务?

推荐答案

-- -------------------- ---- -------
-- ----
----- ------------

-- -------
------ -------- --- ------- - ------- - --- ----- -- - --
------ -------- --- ------- - ------- - --- ----- -- - --

-- ----
-------

-- -----------
---------

本题详细解读

事务的基本概念

事务是数据库操作的一个基本单元,它包含一组SQL语句,这些语句要么全部成功执行,要么全部失败。事务的四大特性(ACID)包括原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。

开始事务

在SQL中,使用START TRANSACTION语句来开始一个新的事务。这个语句标志着事务的开始,之后的SQL语句将在这个事务的上下文中执行。

提交事务

当所有的SQL语句都成功执行后,可以使用COMMIT语句来提交事务。提交事务后,所有的更改将永久保存到数据库中。

回滚事务

如果在事务执行过程中发生错误,或者需要撤销已经执行的操作,可以使用ROLLBACK语句来回滚事务。回滚事务后,所有的更改将被撤销,数据库将恢复到事务开始之前的状态。

示例解释

在上面的示例中,我们首先使用START TRANSACTION开始一个新的事务。然后执行了两个UPDATE语句,分别将账户1的余额减少100,账户2的余额增加100。如果这两个操作都成功执行,我们使用COMMIT提交事务,使更改永久生效。如果在执行过程中发生错误,我们使用ROLLBACK回滚事务,撤销所有的更改。

注意事项

  • 事务的提交和回滚是不可逆的操作,一旦提交或回滚,事务将结束。
  • 在某些数据库系统中,如MySQL,START TRANSACTION可以简写为BEGIN
  • 事务的隔离级别可以通过SET TRANSACTION ISOLATION LEVEL语句来设置,以控制事务之间的可见性。
纠错
反馈