如果你这样做
BEGIN TRANSACTION
UPDATE accounts set balance = balance - amount WHERE ac_num = 101
UPDATE accounts set balance = balance + amount WHERE ac_num = 102
COMMIT TRANSACTION
Run Code Online (Sandbox Code Playgroud)
数据库系统将记录对帐户101上的更改所做的操作.然后,如果帐户102上的工作将失败,则RDBMS使用这些注释撤消101上的工作.
此外,当它开始在帐户101上工作时,对数据库进行锁定,这样就没有其他人可以来读取帐户101中更新但未提交的数据.(此处的锁定基本上只是一个注释"我在这里工作,不要碰.")