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

标签 java sql jdbc relational-database

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

想象一下:

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/

相关文章:

查询用户数据时,Java ResultSet 已关闭异常

java - 带有 Action 执行 Action 监听器的 jtextfield

Java Web应用程序: Monitoring Progress

Javassist 注释问题

c# - Ms Access 2010 问题与 C# 中的 where 子句

sql - 仅使用一个查询删除重复记录

java - org.o7planning.aboutcompany.MainController 中的字段 dataSource 需要类型为 'javax.sql.DataSource' 的 bean,但无法找到

java - If 语句在 NetBeans 中无法正常运行

java - 使用 java.sql.PreparedStatement 将 PDF 文件上传到 mysql BLOB 而不会损坏

java - JDBC 插入错误