mysql更改隔离级别
参考https://blog.csdn.net/qq_21299835/article/details/121189565
关闭mysql事务自动提交:set autocommit = off (设置session的autocommit)
查看自动提交是否已关闭:select @@autocommit;
查看mysql默认的隔离级别:
select @@session.transaction_isolation
涉及的表
CREATE TABLE test
(
id
int NOT NULL AUTO_INCREMENT,
name
varchar(30) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
脏读:在读未提交的隔离级别下
数据如下
关闭自动提交
第一个事务未提交,第二个事务查看第一个事务未提交的数据。
脏读解决方案:设置隔离级别为读已提交
第一个事务insert后未提交,第二个事务查看不到第一个事务插入的数据。
不可重复读:在读已提交隔离级别下
第一个事务更新id为6的name,未提交,第二个事务看到更改后的数据。
不可重复读解决方案:设置隔离级别为可重复读
第一个事务更新id为6的name为张三1,未提交,第二个是事务查询不到更新后的数据。
标签:事务,隔离,验证,提交,mysql,级别,id 来源: https://www.cnblogs.com/shigongp/p/16531855.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。