mysql事务疑惑2点

发布于 2022-09-01 16:38:23 字数 235 浏览 13 评论 0

各位好,我有两个疑问:

1.比如mysql事务中有3个原子操作,其中第一个失败后会回滚吗?第二个失败后是直接回滚还是等第3个执行完毕之后3个一起回滚。

2.引起的回滚的原因有哪些?比如插入数据失败,更新数据失败?表中有这一条记录但是没有更新成功和根本没有这条记录有和区别呢?另外执行到第二个原子操作时数据库直接报错(重复的key之类),这种情况下事务是怎样运行的呢?

欢迎各位前来交流,本人也会尽量去查找答案。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一影成城 2022-09-08 16:38:23

试着来答一下,有经验成分,可能有问题

  1. 事务在没有提交(commit)前,所有的操作都是没有持久化的,只是在你当前事务中有效,只有你调用了commit语句或者在autocommit开启的时候才会被提交

  2. ~~据我所知的话回滚需要显式的调用,用rollback语句,并且是指恢复到事务刚开始的状态,并且结束事务。基于这点,所以也就不存在“引起回滚的原因”这回事了~~ rollback可以按照需要显式调用,或者在发生错误时自动执行

其实需要知道的东西都在mysql的官方文档里面有了
https://dev.mysql.com/doc/refman/5.6/en/commit.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文