目录
推荐超级课程:
SQL中的事务简介
想象一个使用SQL作为数据库的银行系统。用户A想要把一些钱存入用户B的账户。如果他们发送了这笔钱,我们从他们的账户余额中取出这笔钱,然后想要把这笔钱存入用户B的账户,但突然我们的数据库崩溃了。
这意味着我们从用户A的余额中取出的钱消失了吗?不,因为SQL数据库使用SQL事务来处理这些情况。
事务和ACID属性
事务是作为单个原子单元执行的一个或多个SQL操作的序列。其目的是确保数据库中的数据一致性。一个事务具有以下属性,常常用ACID首字母缩写来提及:
- 原子性: 整个事务被视为一个单元,要么完全成功,要么完全失败。
- 一致性: 事务将数据库从一个有效状态转换为另一个有效状态,维持数据库的不变性。
- 隔离性: 并发事务所做的修改在彼此之间被隔离,直到被提交。
- 持久性: 一旦事务被提交,即使发生系统故障,也会保持提交状态。
SQL事务中的关键命令
我们使用BEGIN TRANSACTION关键字标记SQL事务的开始。
为了保存在事务期间所做的