大家工作中增删改是(写 sql)还是(代码里单表增删改+事务)?

76 天前
 laofan666

最近遇到一个笔试题,通过一些子表的条件来删除主表数据,类似这种

DELETE P
  FROM Product P
  LEFT JOIN OrderItem I ON P.Id = I.ProductId
 WHERE I.Id IS NULL

工作中一直都是代码操作单表,然后加事务, 像上面这个 sql ,一般先查出 P 表 id 再根据 id 删除, 想知道 v 友们是什么情况?

1289 次点击
所在节点    数据库
4 条回复
lyusantu
75 天前
这不是让你减少一次查询嘛
正常来说的话 I 表的 ID 应是主键 也不存在为 null 的情况吧
Nitsuya
75 天前
I 表会卡全表. 看业务和数据.
onll42y
75 天前
这个 SQL 是说把没有产生过订单的商品全部删除,用代码单表查的话,实现费事一点,执行效率也没这个高
andykuen959595
75 天前
这种也可以的,实在是不放心,可以先过滤出来,然后插入临时表,最后再删除。估计保险吧

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

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

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

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

© 2021 V2EX