last insert row mysql_MySQL last_insert_id()函数

在本教程中,您将学习如何使用MySQL LAST_INSERT_ID函数来获取最后插入行的生成序列号。

MySQL LAST_INSERT_ID函数简介

在数据库设计中,我们经常使用代理键使用AUTO_INCREMENT属性为主键列生成唯一的整数值。

当您将新行插入到具有AUTO_INCREMENT列的表中时,MySQL会自动生成一个唯一的整数,并将其作为主键列的值。

有关如何设置列的AUTO_INCREMENT属性的更多信息,请查看MySQL序列教程。

您可以使用MySQL LAST_INSERT_ID函数获取生成的序列号,并此数字值使用在下一个语句中,例如:将其值作为新行的一个值插入到相关表中。

MySQL LAST_INSERT_ID示例

我们来看一下使用MySQL LAST_INSERT_ID函数的例子。

首先,创建一个名为tbl的新表进行测试。在tbl表中,在id列上设置了AUTO_INCREMENT属性。

USE testdb;

CREATE TABLE tbl (

id INT AUTO_INCREMENT PRIMARY KEY,

description VARCHAR(250) NOT NULL

);

其次,向tbl表中插入一个新行记录。

INSERT INTO tbl(description)

VALUES('MySQL last_insert_id');

第三步,使用MySQL LAST_INSERT_ID函数来获取MySQL生成的最后一个插入ID的值。

mysql> SELECT LAST_INSERT_ID() as lastID;

+--------+

| lastID |

+--------+

| 1 |

+--------+

1 row in set

需要注意的是,如果使用单个INSERT语句将多行插入到表中,则LAST_INSERT_ID函数将返回第一行的最后一个插入ID。

假设AUTO_INCREMENT列的当前值为1,并在表中插入3行。当您使用LAST_INSERT_ID函数获取最后一个插入ID时,将获得2而不是4。

以下语句将向tbl表中插入3行,并使用LAST_INSERT_ID函数获取最后一个插入ID值。

mysql> INSERT INTO tbl(description)

VALUES('record 1'),

('record 2'),

('record 3');

SELECT LAST_INSERT_ID();

Query OK, 3 rows affected

Records: 3 Duplicates: 0 Warnings: 0

+------------------+

| LAST_INSERT_ID() |

+------------------+

| 2 |

+------------------+

1 row in set

查看tbl表的数据:

mysql> SELECT * FROM tbl;

+----+----------------------+

| id | description |

+----+----------------------+

| 1 | MySQL last_insert_id |

| 2 | record 1 |

| 3 | record 2 |

| 4 | record 3 |

+----+----------------------+

4 rows in set

LAST_INSERT_ID函数基于客户端独立原则。这意味着特定客户端的LAST_INSERT_ID函数返回的值是该客户端生成的值。这样就确保每个客户端可以获得自己的唯一ID。

在本教程中,我们向您展示了如何使用MySQL LAST_INSERT_ID函数来获取插入到表中的最后一行的序列号。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值