在MySQL 中檢索最後插入的ID 以進行多表插入
在處理多個資料庫表時,通常需要檢索最後插入的ID插入多個表後的ID。一個常見的場景是從第一個表中檢索最後插入的 ID,即使後續插入是到其他表中的。
考慮以下 SQL 查詢:
INSERT INTO table1 (title,userid) VALUES ('test',1); INSERT INTO table2 (parentid,otherid,userid) VALUES (LAST_INSERT_ID(), 4, 1); SELECT LAST_INSERT_ID();
預設情況下,LAST_INSERT_ID( )會傳回最近表插入的最後插入的 ID,在本例中為 table2。要從table1 中檢索最後插入的ID,有幾種方法可用:
將最後插入的ID 儲存在變數中:
將值插入table1 並儲存變數中最後插入的ID:
SET @last_id_in_table1 = LAST_INSERT_ID();
後續插入其他表格不會影響該變量,從而允許稍後引用插入到table1 的最後一個 ID。
檢索最大ID:
另一種方法是在插入後從table1 中找到最大ID :
SELECT MAX(id) FROM table1;
這將返回最後插入的ID,即使已將其他表格插入
注意:檢索最大 ID 時,考慮潛在的競爭條件非常重要。如果另一個進程或連線同時向 table1 中插入值,則檢索到的最大 ID 可能無法準確反映最後插入的值。
以上是MySQL多表插入後如何取得最後插入的ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!