UPSERT 操作:在更新中合併現有值
Upsert 是插入和更新的組合,是一種方便的資料庫操作,可實現高效能在單一查詢中插入和更新資料。但是,在更新過程中需要考慮新值和現有值的處理場景可能會帶來複雜性。
在提供的範例中,包含item_name(主鍵)和items_in_stock 欄位的項目表需要根據項目存在:
最初,建議使用子選擇來擷取ON DUPLICATE KEY UPDATE 子句的現有庫存計數。但是,有一個更簡單的方法:
INSERT INTO `item` (`item_name`, `items_in_stock`) VALUES( 'A', 27) ON DUPLICATE KEY UPDATE `items_in_stock` = `items_in_stock` + 27
在此修訂後的語法中,ON DUPLICATE KEY UPDATE 子句直接引用現有的 items_in_stock 列,從而無需子選擇。這簡化了更新過程並維護所需的功能,確保根據新值和現有值準確更新庫存計數。
以上是如何在合併 MySQL 中現有值的同時有效率地更新資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!