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