5.8.1.1 获取自增值

可以通过多种不同的方式获取在语句AUTO_INCREMENT之后 使用的列的值 。INSERT要在 之后立即获取值INSERT,请使用带有函数 的SELECT查询 。LAST_INSERT_ID()

例如,使用 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