反人性 SQL 速查
存在則取得 ID,否則插入
-- 假設 `pk` 是 Primary Key, `column2` 是 Unique Key
INSERT INTO `table` (`column2`)
VALUES ("value2")
ON DUPLICATE KEY UPDATE `pk` = LAST_INSERT_ID(`pk`);
- 前置條件:插入資料必須包含 Unique Key 或 Primary Key
- 回傳值:Primary Key (用
last_insert_id讀取) - 由於使用 INSERT 指令,所以每次查詢都會增加 AUTO_INCREMENT 計數,
想避免頻繁增加,可以先使用 SELECT 檢查一次 - 呼叫
LAST_INSERT_ID(`pk`)可以改變用戶端讀取 “最後插入的主鍵” 的值 LAST_INSERT_ID(`pk`)回傳值為傳入值,所以不會變更原有記錄
Leave a Comment