mysql 事务的处理,想问下这种情况下需要使用事务吗

2022-06-30 10:48:15 +08:00
 rower
一个接口,涉及到两个表,两条 sql 。就是把这条数据从一个表删除,然后把数据插入到另一个表。

新加一个字段,标记为是否删除这种情况不考虑啊!
新加一个字段,标记为是否删除这种情况不考虑啊!
新加一个字段,标记为是否删除这种情况不考虑啊!

我想了下,只有当这个接口处理失败,比如说只删除数据,没有插入数据才会有问题。
当并发时,如果这个接口执行到一半,其他人查询表,虽然结果不准确,但是只要接口成功,那么结果最终会准确。
如果不是那种金融场景的话,这里可以容忍
922 次点击
所在节点    问与答
7 条回复
aitaii
2022-06-30 10:56:33 +08:00
有一个 low 的方案,用触发器
yuancoder
2022-06-30 11:06:58 +08:00
hidemyself
2022-06-30 11:15:43 +08:00
需要事务
rower
2022-06-30 11:17:37 +08:00
@yuancoder
@hidemyself
为啥呢
BeautifulSoap
2022-06-30 11:19:02 +08:00
按理说是要的,但如果你不想用事物的话,为什么不反过来先把数据插入另一个表,然后再从原始表把数据删除?
按照 lz 的意思,反正数据插入另一个表没问题吧
themostlazyman
2022-06-30 11:20:26 +08:00
为啥不需要呀,出问题给自己找麻烦。实在不想加建议先插入到另外一张表,再删除。
akira
2022-06-30 13:37:55 +08:00
删除标记就是最优解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX