当并非所有值都存在时,最有效地更新表记录(在我的情况下使用主键)的最佳实践是什么?
想象一下:
PRIMARY_KEY1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5, COLUMN_6, ...
我总是得到像 (PRIMARY_KEY1, COLUMN_5, COLUMN_4)
或 (PRIMARY_KEY1, COLUMN_2, COLUMN_6, COLUMN_3)
这样的元组,并且希望以尽可能最快的方式更新它们无需在数据库中查找所有其他值。
由于我必须非常快地做到这一点,因此我想对准备好的语句使用批处理之类的东西,以防止大量数据库请求。
感谢大家的回复!
最佳答案
您可以通过期望 SQL 在行访问时填充值来进行“欺骗”。例如,这种类型的语句:
UPDATE MyTable SET (column_1, column_2, ..., column_6)
= (COLAESCE(@suppliedValue1, column_1),
COLAESCE(@suppliedValue2, column_2),
...,
COLAESCE(@suppliedValue6, column_6))
WHERE primary_Key1 = @primaryKey
然后,在填写参数时,只需保留任何未提供的null
...就可以了。
关于java - 如何更新数据库表中的稀疏值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14531215/