3.5.9获取上次插入的行的唯一ID

如果将记录插入包含的表中自动递增列,您可以通过调用来获取存储到该列中的值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中的更多信息自动递增柱子: