簡體   English   中英

如何更新數據庫表中的稀疏值?

[英]How to update sparse values in a database table?

當並非所有值都存在時,最佳方法是最有效地更新表記錄(在我的情況下為主鍵)?

想像:

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)類的元組(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

您不需要更新SQL中的整個行。 只需使用UPDATEs SET語法即可。

UPDATE table SET COLUMN_5 = 'foo', COLUMN_4 = 'goo' WHERE PRIMARY_KEY1 = 'hoo';

在這里看到這篇文章,

JDBC批處理插入性能

閱讀。 然后,在頁面的右列下其他類似文章的相關鏈接下找到。您應該很快找到所需的所有答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM