mysql之事务
-
原子性
要不成功,否则失败
-
一致性
事务前后的数据完整性要一致
-
持久性
事务一旦提交不可逆
-
隔离性
事务的隔离性,多个用户并发访问数据库时,数据库会为每个用户开启事务,不能被其他事务的操作数据所干扰。
隔离性所导致的问题
-
脏读:
一个事务读取到了另一个事务未提交的数据
-
不可重复读取
-
虚读
一个事务内读取到了别的事务插入的数据,导致前后读取不一致
事务
-
mysql是默认开启事务自动提交的
set autocommit = 0 /*关闭*/
set autocommit = 1 /*开启*/
-
模拟mysql事务完整性
set autocommit = 0 /*关闭自动提交事务,手动处理事务*/
--事务开启
start transaction --标记一个数据的开始,之后的sql会在一个事务中
insert into XX
update XX set
delete from XX
--提交:持久化(成功!)
commit;
---回滚:回到之前的样子(失败!)
rollback;
--事务结束
set autocommit = 1 /*开启自动提交*/
--事务比较长可以设置一个事务的保存点
savepoint 保存点名称
--回滚到保存点
rollback to savepoint 保存点名称
--删除保存点
release savepoint 保存点名称

浙公网安备 33010602011771号