文件首頁
MySQL Connector/ODBC 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.7Mb
PDF (A4) - 1.7Mb


8.1.1 取得自動遞增值

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