MySQL ON DUPLICATE KEY 能否傳回最後插入或更新的 ID?
在 MySQL 中,INSERT ... ON DUPLICATE KEY UPDATE 語句允許在單一查詢中執行插入或更新操作。然而,取得受影響行的 ID 可能具有挑戰性。
通常,LAST_INSERT_ID() 函數傳回新插入記錄的 ID。更新操作後,它仍然沒有意義。要解決此問題,您可以利用具有 LAST_INSERT_ID() 的表達式,如 MySQL 文件所述。
具體來說,建立一個更新 id 欄位(本例中為 AUTO_INCRMENT 欄位)並包含 LAST_INSERT_ID(expr ) 作為一個表達式,使其有意義更新。
範例:
考慮一個 id 列為 AUTO_INCRMENT 的表格。要更新或插入行並檢索受影響的ID:
INSERT INTO table (a, b, c) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;
此方法可確保LAST_INSERT_ID() 提供受影響行的ID,無論插入或更新操作如何,從而無需第二個查詢來獲取ID。
以上是MySQL 的 ON DUPLICATE KEY UPDATE 如何傳回受影響的行 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!