MySQL Connector/ODBC 發行說明
在 INSERT
陳述式後,取得使用 AUTO_INCREMENT
的欄位值,可以透過多種不同的方式達成。若要取得在 INSERT
後立即取得的值,請使用包含 LAST_INSERT_ID()
函數的 SELECT
查詢。
例如,使用 Connector/ODBC,您會執行兩個不同的陳述式,INSERT
陳述式和 SELECT
查詢,以取得自動遞增值。
INSERT INTO tbl (auto,text) VALUES(NULL,'text');
SELECT LAST_INSERT_ID();
如果您的應用程式中不需要該值,但確實需要在另一個 INSERT
中使用該值,則整個過程可以透過執行以下陳述式來處理
INSERT INTO tbl (auto,text) VALUES(NULL,'text');
INSERT INTO tbl2 (id,text) VALUES(LAST_INSERT_ID(),'text');
某些 ODBC 應用程式 (包括 Delphi 和 Access) 在使用先前的範例時,可能無法取得自動遞增值。在這種情況下,請嘗試以下陳述式作為替代方案
SELECT * FROM tbl WHERE auto IS NULL;
此替代方法要求 sql_auto_is_null
變數未設定為 0。請參閱伺服器系統變數。
另請參閱 取得上次插入列的唯一 ID。