mysql事务(二)——控制语句使用
事务控制
一般来说,mysql默认开启了事务自动提交功能,每条sql执行都会提交事务。可以使用如下语句关闭事务自动提交功能。
show session variables like 'autocommit'; set @@autocommit = 0; show session variables like 'autocommit';
1、 事务开始
begin或start transaction;
2、 事务提交
commit或commit work;
3、 回滚
rollback或rollback work;
4、 保存点设置
savepoint 标识;
5、 回滚到保存点
rollback to savepoint 标识;
6、 删除保存点
release savepoint 标识。
事务隔离
READ-UNCOMMITTED 读未提交
READ-COMMITTED 读已提交
REPEATABLE-READ 重复读
SERIALIZABLE 序列化
|
脏读 |
不可重读 |
幻读 |
READ-UNCOMMITTED |
Y |
Y |
Y |
READ-COMMITTED |
N |
Y |
Y |
REPEATABLE-READ |
N |
N |
Y |
SERIALIZABLE |
N |
N |
N |
脏读:读取的数据为另一个事务过程数据,读取数据可能是错误的。
不可重读:第二次读取数据内容与第一次读取数据内容不同。(不存在读取事务过程数据)
幻读:第二次读取数据行数比第一次读取行数多或少。(不存在读取事务过程数据)
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步