扫码阅读
手机扫码阅读
咦,为什么我的事务回滚不了?
46 2024-11-05
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:咦,为什么我的事务回滚不了?
文章来源:
江南一点雨
扫码关注公众号
MySQL事务隐式提交摘要
在MySQL中,事务的开启和结束通常通过begin
、commit
或rollback
来控制。然而,在某些操作中,事务会被隐式地提交,可能导致一些不预期的问题。以下是一些会导致隐式提交的操作:
1. DDL操作
DDL语句如ALTER
、CREATE
和DROP
会导致事务自动提交,使得随后的回滚无效。
2. DCL操作
DCL语句,即数据控制语言操作,包括GRANT
、REVOKE
、CREATE USER
、DROP USER
和ALTER USER
,也会导致事务隐式提交。
3. 新事务开启
在当前事务未提交时开启新事务,会导致原事务隐式提交。
4. 各种锁操作
对表进行上锁(LOCK TABLES
)和解锁(UNLOCK TABLES
)操作,以及全局锁(FTWRL
),会引发事务的隐式提交。
5. 从机的操作
在从机上执行的START SLAVE
、STOP SLAVE
、RESET SLAVE
以及CHANGE MASTER TO
等操作,也会隐式提交事务。
6. 其他表操作
刷新权限(FLUSH PRIVILEGES
)、优化表(OPTIMIZE TABLE
)、修复表(REPAIR TABLE
)等操作亦会导致事务隐式提交。而LOAD DATA
操作是否会导致隐式提交仍有待探讨。
7. 最佳实践
为避免隐式提交的问题,建议在事务中只包含增删改查(INSERT
、DELETE
、UPDATE
、SELECT
)操作。
想要了解更多内容?
查看原文:咦,为什么我的事务回滚不了?
文章来源:
江南一点雨
扫码关注公众号
江南一点雨的其他文章
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线