Java 如何更新数据库表中的稀疏值?

Java 如何更新数据库表中的稀疏值?,java,sql,jdbc,relational-database,Java,Sql,Jdbc,Relational Database,当并非所有值都存在时,最有效地更新表记录的最佳实践是什么(在我的例子中是使用主键) 想象一下: PRIMARY_KEY1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5, COLUMN_6, ... 我总是得到像(PRIMARY\u KEY1,COLUMN\u 5,COLUMN\u 4)或(PRIMARY\u KEY1,COLUMN\u 2,COLUMN\u 6,COLUMN\u 3)这样的元组,只想以最快的方式更新它们,而不需要数据库查找所有其他值 因为我必须

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

想象一下:

PRIMARY_KEY1, COLUMN_2, COLUMN_3, COLUMN_4, COLUMN_5, COLUMN_6, ...
我总是得到像
(PRIMARY\u KEY1,COLUMN\u 5,COLUMN\u 4)
(PRIMARY\u KEY1,COLUMN\u 2,COLUMN\u 6,COLUMN\u 3)
这样的元组,只想以最快的方式更新它们,而不需要数据库查找所有其他值


因为我必须非常快地完成这项工作,所以我希望对准备好的语句使用批处理之类的方法,以防止大量的数据库请求


感谢所有回复

不需要更新SQL中的整行。只需使用更新集语法

UPDATE table SET COLUMN_5 = 'foo', COLUMN_4 = 'goo' WHERE PRIMARY_KEY1 = 'hoo';
请看这里的帖子

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

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

你是说在一些SQL编辑器中进行临时更新,还是在应用程序中进行临时更新?“防止大规模数据库请求。”-有多大规模?现代的RDBMS可以处理许多事务……我忘了添加java/jdbc标记,所以我想在java中这样做。我想每秒处理大约50k个这样的请求,但为此,我必须为每个元组处理一个请求,想象一下,我想每秒处理大约50000个请求。