事务是必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性) 1、事务的原子性:一组事务,要么成功;要么撤回。 2、稳定性 : 有非法数据(外键约束之类),事务撤回。 3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。 4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。
MySQL的事务处理主要有两种方法 1.用begin,rollback,commit来实现 begin/start transaction开始一个事务 rollback事务回滚 commit 事务确认 2.直接用set来改变mysql的自动提交模式 mysql默认是自动提交的,也就是你提交一个query,就直接执行!可以通过 set autocommit = 0 禁止自动提交 set autocommit = 1 开启自动提交 来实现事务的处理。 但要注意当用set autocommit = 0 的时候,你以后所有的sql都将作为事务处理,直到你用commit确认或 rollback结束,注意当你结束这个事务的同时也开启了新的事务!按第一种方法只将当前的做为一个事务! MYSQL只有 INNODB和BDB类型的数据表才支持事务处理,其他的类型是不支持的!
如果commit之后,rollback是没有用的, rollback主要是取消你在begin之后所做的所有操作,如果先rollback,然后commit,相当于没有操作
新闻热点
疑难解答