首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 獲取剛插入記錄的 AUTO_INCREMENT ID 方法

     編輯:MySQL 綜合教學

推薦方法:LAST_INSERT_ID()


INSERT INTO t (col) VALUES ('value');
SELECT LAST_INSERT_ID();  -- 回傳剛插入的自增 ID
  • 連線級別隔離,不受其他連線影響
  • 支援多行 INSERT,回傳第一行的 ID
  • 標準 SQL 函數,移植性佳

替代方法:WHERE auto_col IS NULL(特殊行為)


INSERT INTO t (col) VALUES ('value');
SELECT * FROM t WHERE auto_col IS NULL;  -- 回傳剛插入的行

特殊行為:首次查詢回傳新插入行,再次查詢則回傳真正滿足 IS NULL 的行(通常為空集)。此為相容 ODBC 標準的歷史遺留行為。

停用特殊行為


SET SQL_AUTO_IS_NULL = 0;

設為 0 後,WHERE auto_col IS NULL 僅回傳真正為 NULL 的行。

程式語言驅動層面

  • JDBC:PreparedStatement.getGeneratedKeys()
  • PHP PDO:$pdo->lastInsertId()
  • Python MySQLdb:cursor.lastrowid
  • Go database/sql:result.LastInsertId()

建議優先使用驅動層 API,避免額外查詢往返。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved