回答

收藏

在WHERE子句中使用“泪N”,其中集合中的项数非常大

技术问答 技术问答 375 人阅读 | 0 人回复 | 2023-09-14

我遇到的情况是,我需要对只能通过其ID识别的非常大的行集进行更新(因为目标记录是由用户选择的,除了它是用户的记录集之外,没有其他共同点想要修改)。正在所有这些记录上更新相同的属性,因此我想进行一个UPDATE调用。
' p! N6 h6 O  n# p) M9 W, [, I这是一种不好的做法,还是比在UPDATE语句中使用“ WHERE IN(1,2,3,4,..... 10000)”更好的方法来进行此更新?9 T3 y" }3 J, `5 v" w8 b' ^$ O
为每条记录使用单独的更新语句并将它们粘贴到单个事务中是否更有意义?现在,我正在使用SQL
2 c1 \" x/ b- l9 eServer和Access,但是,如果可能的话,我想听听有关任何类型的关系数据库的更广泛的最佳实践解决方案。" }! Y- Z0 J0 E) N
               
0 M( f' S6 A2 o解决方案:
% F$ _# O, ?3 D! d0 F               
+ V) p0 g- Y! a' l, {( P$ |" n, q6 ~8 ^8 G& Q7 t8 ]3 G$ h
5 K7 z1 H! [- u0 K( Z8 }/ h3 a, t
                我会一直使用
, S. ^- g; I! a3 t- wWHERE id IN (1,2,3,4,.....10000)
! V1 N0 }, E$ D$ R除非你的条款是 愚蠢的 大,这实在不应该由用户输入的发生。6 {( R. r" K% _# J2 \% \0 T+ b* I6 ]
编辑:例如,Rails在幕后做了很多工作' h9 W1 O0 S. E" ~" V  j! ]9 E# S
在单个事务中单独执行更新语句绝对不会更好。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则