对last_insert_id函数()在MySQL使用一个详细的解决方案

最近,我与索宾做一个精品课程,因为一个固定的ID作为表之间的关系。在上表中插入数据后,通过插入的数据生成的自增ID传递到下一个表。我们研究决定使用MySQL提供的功能last_insert_id()。

复制代码代码如下所示:

(last_insert_id)(无参数)返回第一个自动生成的值,是由最近执行的INSERT或UPDATE语句的影响等一列的auto_increment柱。例如,插入一行,产生了一个auto_increment价值后,你可以得到这样的价值:

MySQL >选择last_insert_id();

> 195



简而言之,这个函数返回插入记录添加到表中的字段的值。一般来说,我们称之为自增字段的id,这允许您返回新插入记录的id值。

一个简单的例子:

复制代码代码如下所示:

为查询=插入数据` `(` clou1 `,` clou2 `)值('testvalue '测试');

Mysql_query ($query);

为查询= 选择last_insert_id();

结果= mysql_query美元($查询);

行= mysql_fetch_row美元($结果);

返回$行{ 0 };



该函数基于连接,不受其他客户端连接的影响,所以结果准确。如果从表中选择max(id),就可以在高密度的插入请求中得到问题并返回错误值。

last_insert_id描述

正如你可以看到的名字,last_insert_id是最后插入的ID值,根据MySQL官方手册,它具有使用2种方法。

首先,没有参数:last_insert_id()。该方法与auto_increment属性一起使用。当我们将记录添加到表的auto_increment'attribute领域,last_insert_id()返回该字段的值。你可以试试看。

二是表达:last_insert_id(价值1),如上所述,它返回的是表达,价值,价值+ 1;

##################################

last_insert_id()自动返回的值的第一个表,是由auto_increment列在最后插入或更新查询。

MySQL的last_insert_id笔记:

首先,用于查询和插入的连接对象必须相同,否则返回值是不可预测的。

MySQL >选择last_insert_id();

> 100

返回一个给定的使用此功能连接对象的价值在于连接对象产生的最新声明,影响auto_increment列第一auto_increment值。这个值不能被其他是连接对象的影响,他们自己制作的auto_increment值。

其次,last_insert_id是独立的表,如果数据插入表中,然后将数据插入到表B,和last_insert_id返回表中的ID值

第三,如果你多行插入一个插入语句,last_insert_id()只返回值时所产生的数据的第一行插入。原因是,它可以很容易地复制在其他服务器上的相同的插入语句。

插入到t值中

(空,玛丽)- >,(空,,(空,丽莎');

从t选择;

| ID |名字|

+ + +

| 1 |鲍伯|

| 2 |玛丽|

| 3 |简|

| 4 |丽莎|

MySQL >选择(last_insert_id); / /我想解释这个问题的关键是。

|(last_insert_id)|

2 | |

虽然3条插入T,对这些行的第一行的编号是2,这是last_insert_id()的返回值。

以上是本文的全部内容,希望大家能喜欢。

请花些时间与朋友分享这篇文章,或者留下评论,我们要感谢你的支持!