首先, 什么是事务 ?
一. 事务处理是用来维护数据库的完整性的,它保证成批的MySQL操作要么完全执行,要么完成不执行。
举一个例子来进行说明,例如:你去银行取钱,你取钱和银行卡上扣钱必须要满足要么这两者全部执行,要么都不执行,你总不能你在银行取了200块钱,而银行卡上的的钱还是原来的那么多,是吧?虽然你可能希望这个事情发生。如果你希望这件事发生,但是也有可能是你银行卡上的钱扣了,但是,自动取款机出现故障,没有吐钱,这样你是不是比较郁闷。
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。
比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。 总之 , 一句话: 同生共死 !!!要么都执行,要么都不执行。他们是一个整体!!!!
↓ ↓ ↓
仅有两个出口:
二. 删除语句:
删除的SQL语句 delete from userinfo where .... delete from mail where .... delete from article where ...
三. 事务是必须满足4个条件(ACID)
- 原子性(Autmic):事务在执行性,要做到“要么不做,要么全做!”,就是说不允许事务部分得执行。即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响!
- 一致性(Consistency):事务得操作应该使使数据库从一个一致状态转变倒另一个一致得状态!就拿网上购物来说吧,你只有即让商品出库,又让商品进入顾客得购物篮才能构成事务!
- 隔离性(Isolation):如果多个事务并发执行,应象各个事务独立执行一样!
- 持久性(Durability):一个成功执行得事务对数据库得作用是持久得,即使数据库应故障出错,也应该能够恢复!