INSERT INTO t (col) VALUES ('value');
SELECT LAST_INSERT_ID(); -- 回傳剛插入的自增 ID
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 的行。
PreparedStatement.getGeneratedKeys()$pdo->lastInsertId()cursor.lastrowidresult.LastInsertId()建議優先使用驅動層 API,避免額外查詢往返。