同时多次插入时

多个insert时,返回第二个insert值,例如:

# 现在表里有3条记录
[root@yejr.me]> select * from t;
+----+-----+
| id | c1 |
+----+-----+
| 1 | 784 |
| 2 | 574 |
| 5 | 681 |
+----+-----+
3 rows in set (0.00 sec)

# 一次性再插入3条记录
[root@yejr.me]> insert into t values
(0,rand()*1024), (0, rand()*1024), (0,rand()*1024);

# 获取到的 last_insert_id() 值却是6,显然“不太符合预期”
[root@yejr.me]> select last_insert_id();
+------------------+
| last_insert_id() |
+------------------+
| 6 |
+------------------+

[root@yejr.me]> select * from t;
+----+-----+
| id | c1 |
+----+-----+
| 1 | 784 |
| 2 | 574 |
| 5 | 681 |
| 6 | 841 |
| 7 | 112 |
| 8 | 87 |
+----+-----+
6 rows in set (0.00 sec)

原文地址:https://www.cnblogs.com/ly570/p/11448344.html