事务操作
前提是储存引擎必须是innodb
事务操作原理?
事务原理.png
在开启事务之后,所有的操作都会先写入临时日志文件,没有问题的话,就会(断开)同步到数据库中。
事务结束无论是commit还是rollback,都会清空临时日志,但是commit会同步,rollback不会。如果出现断电的情况,也会清空,但是不会影响圆的数据库。
rollback的使用
在每一步的可能错的地方设置回滚点savepoint spl; (spl可以随意设置,只是一个标记),然后如果哪一步操作错误的话,可以回到回滚点,代码:rollback spl;回到正确的位置,继续操作。
回滚点和回滚的区别?
回滚是回到原来的数据,回滚点是设置一个标志。
自动事务
set autocommit = 0 关闭 set autocommit = 1 开启 一般是开启的,这样的话事务中的操作会同步。
事物的四大特性ACID分别对应
原子性(要么成功要么失败)、一致性(只要事务没有提交,数据库的数据不会变化)、隔离性、持久性;隔离性:事务与事务之间互不干扰。持久性:是指在事务中同步到数据库中,即使回滚也没有意义。
锁机制
就是用别的字段(除了id),在事务中一旦开启,在另一个事务执行的话,就得等待十几秒钟。rollback会解除这个锁
事务的操作针对数据的操作。并不针对结构。
上一篇下一篇