SQL的事务

一、基本概念

  1. 事务是数据库区别于文件系统的重要特性之一 , 当有了事务 , 就可以让数据库始终保持一致性 , 同时可以通过事务的机制恢复到某个时间点 , 保证了提交到数据库的修改不会因为系统崩溃而丢失;
  2. 事务只是一个改变 , 是一些操作的集合 , 用专业术语说 , 就是一组逻辑操作单元 。事务本身不具备四个特性 , 而是通过某些手段尽可能让执行单元满足四个特性 , 那么此时称之为一个完整的事务 。
经常在网络上、现实中一提到事务就绑死ACID四个特性 , 但实际ACID不仅在事务中有体现 , 还可以涵盖各个领域 。
二、事务处理的原则所有的事务都是作为一组逻辑操作单元来执行 , 即使出现故障 , 都不能改变这种方式 。当在一个事务中执行多个操作时 , 要么事务提交(commit) , 所有修改都会永久地保存下来;要么事务回滚(rollback) , 所有修改都放弃 , 一切回归最初状态 。
常见例子:
A给B转账 , A余额减少 , B余额增加 , 这是一套必须同时完成的操作 , 如果其中一个失败了 , 则所有操作都会失败 。
在SQL中体现为:
UPDATE account SET money = money - 100 WHERE name = 'A';UPDATE account SET money = money + 100 WHERE name = 'B';这两句SQL语句就必须同时完成 , 或同时失败 。
三、ACID