事务
- 事务(Transaction)是指作为一个逻辑工作单元执行的一系列操作,这些操作要么全部成功,要么
全部失败。事务确保对多个数据的修改作为一个单元来处理。 - 说明:
- 在MySQL中,只有使用了Innodb存储引擎的数据库或表才支持事务。
- 事务用于维护数据库的完整性,保证成批的sql语句要么都执行,要么都不执行。
- 事务用于管理INSERT、UPDATE和DELETE语句。
ACID特性
特性 | 说明 |
---|---|
Atomicity(原子性) | 事务必须是原子工作单元,事务中包含的各操作要么都做,要么都不做 |
Consistency(一致性) | 事务在执行完成时,必须使所有的数据都保持一致状态 |
Isolation(隔离性) | 事务独立运行;多个事务之间相互隔离,互不干扰;事务的100%隔离会牺牲速度 |
Durability(持久性) | 事务执行完成之后,它对系统的影响是永久性的 |
事务控制
- 在默认情况下,MySQL是自动提交事务的,即每一条insert、update、delete的SQL语句提交后会立即执行commit操作;
- 要开启一个事务,可以使用start transaction或begin,或者将autocommit的值设置为0。
【示例】:从a的银行账户转100元钱给b的银行账户,主要执行两部=步:a账户减100元,b账户加100元,两步必须都执行成功才行
知识总结,交流学习,不当之处敬请指正,谢谢!