如果一个操作需要执行 n 个 sql,都要用事务吗?

很多时候一个操作,实际上要分好几个步骤,每个步骤都会执行一个 sql 语句,我知道可以通过 mysql 事务的机制保证原子性,但是对于非重要业务的时候也这样做就有点麻烦了,大家对于这样的需求用不用事务?

阅读 3.8k
2 个回答

取决于业务逻辑。

具体来说就是:当其中某个 SQL 执行失败时,之前执行过的 SQL 是否要全部回退?

如果是的话,那当然要用事务了。

那么什么情况下不是的呢?

比如最后一个 SQL 是写入调试数据,前面的业务已经成功完成,那么即使最后的 SQL 执行失败,也不应该让已经成功的操作付诸东流,所以最后一个 SQL 没必要加入事务当中。

为什么不用,即使不需要保证原子性,你也可以通过事务这种形式让代码逻辑清晰,你的代码是要给后人看的,顺手的事何乐而不为呢。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题