在银行转账中有这样一个故事,这个故事发生在银行系统还没有完善的时候。张三银行卡里面有1000元,李四没钱了,张三借给李四200元吃饭,于是转给李四200元。可是在付完款的时候转账系统突然断电了,结果张三扣了200块钱剩下800元,而李四还是0元。那张三转的两百块钱去哪里了?被系统吃了?没错,被卡到系统里面去了。后来银行系统接入了事务,操作中途断电将张三转账的200元退回了张三的账户。
MySQl事务中可以放多句sql语句组成一个语句集合,这个语句集合要么全部执行,要么一个语句都不执行。
- 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
- 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
- 事务用来管理 insert,update,delete 语句
事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
-
原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。<