使用INSERT...ON DUPLICATE KEY UPDATE 對多列執行UPSERT
執行UPSERT 操作(插入新行或更新現有行)行),同時在更新部分容納新值和現有值,INSERT...ON DUPLICATE KEY UPDATE語句是常用的。此技術可讓您根據具有指定主鍵的記錄是否存在來處理不同的場景。
簡單範例
考慮一個名為 Item 的表,其中包含 Item_Name 欄位(主鍵)和包含庫存計數的 Items_In_Stock。接收商品時,請應用以下邏輯:
一個簡單的方法是在UPDATE 部分中使用多個SELECT 語句來檢索現有計數,如下例所示:
改進的解決方案
但是,這種方法可能過於複雜。 PostgreSQL 允許您直接在 UPDATE 子句中引用觸發 ON DUPLICATE KEY 條件的行的值。因此,您可以將語句簡化如下:
這種最佳化的語句避免了額外的 SELECT 查詢的開銷,使程式碼更加簡潔和優雅。
以上是如何在SQL中高效率執行多列UPSERT操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!