文档首页
MySQL Connector/ODBC 开发人员指南
相关文档 下载本手册
PDF (US Ltr) - 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