【MySQL进阶之路 | 高级篇】显式事务和隐式事务

【MySQL进阶之路 | 高级篇】显式事务和隐式事务

使用事务有两种方式:显式事务和隐式事务。

1. 显式事务

步骤1:

START TRANSACTION或者BEGIN,作用是显式开启一个事务。

START TRANSACTION语句相较于BEGIN特别之处在于,后面能跟几个修饰符。比如:

READ ONLY:标识当前事务是一个只读事务,也就是属于该事务的数据库操作只能读取数据,而不能修改数据。注意:只读事务中只是不允许修改那些其他事务也能访问到的表中的数据,对于临时表来说,由于它们只能在当前会话可见,所以只读事务其实也是可以对临时表做DML操作的。

READ WRITE(默认情况)标识当前事务是一个读写事务,也就是属于该事务的数据库操可以写入数据,也可以读取数据。

with consistent snapshot:启动一致性读。

read only和read write是用来设置所谓的事务访问模式的,就是以只读还是读写的方式来访问数据库的数据,一个事务的访问模式不能同时设置为只读和读写。所以不能把read only和read write放在START TRANSACTION后。

步骤2:

一系列事务中的操作(主要是DML,不含DDL)

步骤3:

提交事务或中止事务(回滚事务)。

提交事务:COMMIT;

回滚事务,撤销正在进行的所有没提交的修改:ROLLBACK;

回滚到保存点:rollback to savepoint;

在事务中创建保存点,方便以后对保存点进行回滚。一个事务可以存在多个保存点:savepoint 保存点名称;

删除某个保存点:release savepoint 保存点名称;

2. 隐式事务

MySQL中有个系统变量autocommit.默认开启(autocommit=on),DML操作是个独立的事务,自动提交。

可以关闭自动提交。

set autocommit=false<

相关推荐

借呗10万一个月利息多少?全面解析利率与还款
lol钻石维护局一般多久打一次:lol钻石维护局在哪里看剩余天数
你的苹果手机耗电快?赶紧关闭这3个“开关”,可以省电、省流量
2、怪物猎人雌火龙怎么杀
谁有365比分链接

2、怪物猎人雌火龙怎么杀

07-08 👁️ 2420