0

当并非所有值都存在时,最有效地更新表记录(在我的情况下使用主键)的最佳实践是什么?

想象:

PRIMARY_KEY1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5, COLUMN_6, ...

我总是得到类似(PRIMARY_KEY1, COLUMN_5, COLUMN_4)or的元组,(PRIMARY_KEY1, COLUMN_2, COLUMN_6, COLUMN_3)并且只想以最快的方式更新它们,而无需在数据库中查找所有其他值。

由于我必须非常快,因此我想对准备好的语句使用批处理之类的东西,以防止大量的数据库请求。

感谢所有回复!

4

3 回答 3

1

您可以通过期望 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......你应该很好。

于 2013-01-26T00:51:06.390 回答
0

您不需要在 SQL 中更新整行。只需使用 UPDATEs SET 语法。

UPDATE table SET COLUMN_5 = 'foo', COLUMN_4 = 'goo' WHERE PRIMARY_KEY1 = 'hoo';
于 2013-01-25T22:19:45.177 回答
0

在这里看到这个帖子,

JDBC 批量插入性能

阅读。然后在页面右栏的相关链接下查看其他类似帖子您应该立即找到您需要的所有答案。

于 2013-01-26T00:15:49.377 回答