连接器和 API 手册 / 第 5 章 MySQL 连接器/ODBC 开发人员指南 / 5.8 连接器/ODBC 注释和提示 / 5.8.1 连接器/ODBC 通用功能 /
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。