1.mysql事务是针对innodb引擎的表,只有innodb的表支持事务。
2.事务语法:
start transaction
语句
[savepoint 名称]
[rollback|rollback to 名称]
[语句]
commit [and][chain][and][release]
start transaction:表示事务的开始
savepoint:这个是设置回滚点 用rollback to savepoint名称
commit:开始提交事务执行
CHAIN和RELEASE子句分别用来定义在事务提交或者回滚之后的操作,chain会立即启动一个新事务,并且和刚才的事务具有相同的隔离级别,release则会断开和客户端的连接。
3.set autocommit=1的时候就是事务自动提交
4.当开始一个事务的时候,那关于这个表的锁就会解开,所以事务会触发一个解锁的行为
5.一个事务里的涉及的表最好都是innodb的表,不要参与myisam引擎的表,否则rollback时需要对非事务类型的表进行特别的处理,因为commit、rollback只能对事务类型的表进行提交和回滚。
通常情况下,只对提交的事务纪录到二进制的日志中,但是如果一个事务中包含非事务类型的表,那么回滚操作也会被记录到二进制日志中,以确保非事务类型表的更新可以被复制到从的数据库中。
浙公网安备 33010602011771号