如果将记录插入包含的表中自动递增
列,您可以通过调用来获取存储到该列中的值mysql_insert_id()
功能。
您可以从C应用程序检查一个值是否存储在自动递增
通过执行以下代码(假设您检查了语句成功的代码)。它确定查询是否是一个插
与自动递增
指数:
if((结果= mysql_store_result(&mysql))== 0 && mysql_field_count(&mysql)== 0 && mysql_insert_id(&mysql)!= 0){under_id = mysql_insert_id(&mysql);}
什么时候自动递增
已生成值,您也可以通过执行a来获得它选择last_insert_id()
陈述mysql_real_query()
或者mysql_query()
并从语句返回的结果集中检索值。
插入多个值时,返回最后一个自动递增的值。
为了last_insert_id()
,最近生成的ID在服务器上维护在服务器上。它不会被另一个客户更改。如果您更新另一个,它甚至没有改变自动递增
具有非磁性值的列(即,不存在的值空值
并不是0.
)。使用last_insert_id()
和自动递增
来自多个客户端同时的列完全有效。每个客户端都会收到最后一个语句的最后一个插入的id那客户执行。
如果要使用为一个表生成的ID并将其插入第二个表,则可以使用这样的SQL语句:
插入foo(自动,文本)值(null,'text');#通过将空插入插入Foo2(ID,文本)值(last_insert_id(),'text')来生成id;#在第二个表中使用ID
mysql_insert_id()
将存储到的值返回自动递增
列,是否通过存储自动生成该值空值
或者0.
或被指定为明确的价值。last_insert_id()
返回仅自动生成自动递增
价值观。如果您存储除此之外的显式值空值
或者0.
,它不会影响返回的值last_insert_id()
。
有关获取上次ID中的更多信息自动递增
柱子:
有关信息的信息
last_insert_id()
,可以在SQL语句中使用,参见信息功能。有关信息的信息
mysql_insert_id()
,您在C API中使用的功能,请参阅第5.4.37节“mysql_insert_id()”。有关使用连接器/ J时获取自动递增值的信息,请参阅检索
自动递增
通过JDBC的列值。有关使用连接器/ ODBC获取自动递增值的信息,请参阅获取自动增量值。