Mysql LAST_INSERT_ID函数

参考:官网说明

什么是LAST_INSERT_ID?

顾名思义,LAST_INSERT_ID,最近插入ID,用于得到表中自增列的值。

With no argument, LAST_INSERT_ID() returns a BIGINT UNSIGNED (64-bit) value representing the first automatically generated value successfully inserted for an AUTO_INCREMENT column as a result of the most recently executed INSERT statement. The value of LAST_INSERT_ID() remains unchanged if no rows are successfully inserted.
LAST_INSERT_ID()没有参数,返回值是无符号的64位长整型整数,该值来自最新添加数据中的自增列(如果一次添加多条数据取第一条数据自增id);LAST_INSERT_ID()返回值不变直到下一条数据添加成功。
需要注意的点:
1. 会话之间LAST_INSERT_ID()值互不影响,默认值是0。

A,B:
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)
A:
mysql> insert into demo(value) values('1');
Query OK, 1 row affected (0.00 sec)
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)
B:
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

A中last_insert_id值与B中last_insert_id值互不影响。
2. 一次添加多条数据,返回值是首条id。

mysql> insert into demo(value) values('1'),('2');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
mysql> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
|                2 |
+------------------+
1 row in set (0.00 sec)
  1. LAST_INSERT_ID()值可以设置(貌似没什么用)。
mysql> select last_insert_id(10);
+--------------------+
| last_insert_id(10) |
+--------------------+
|                 10 |
+--------------------+
1 row in set (0.00 sec)

当一张表中有AUTO_INCREMENT字段时,那么表中会有一个number来保存自增列,该number值最好使用乐观锁来保护,一个连接添加数据后把number值传给连接中的LAST_INSERT_ID值,该值可变且对表中number值无影响。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值