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