一开始建个数据库 MariaDB [test]> create table auto( -> i smallint not null auto_increment, -> name varchar(10), -> primary key(i) -> ) -> ; Query OK, 0 rows affected (0.02 sec)
然后执行一条插入语句 MariaDB [test]> insert into auto values(1,'1'),(0,'2'),(null,'3'); Query OK, 3 rows affected (0.00 sec) 此时执行 last_insert_id ()结果为 1 再执行一条语句 MariaDB [test]> insert into auto values(4,'4'); Query OK, 1 row affected (0.00 sec) 此时执行 last_insert_id ()结果为 2 再执行一条语句 MariaDB [test]> insert into auto values(5,'104'); 此时执行 last_insert_id ()结果还是为 2
求问为什么没有变??
1
MajorAdam 2016-11-08 17:09:30 +08:00 via Android
第二次应该返回 4 吧
|
2
MajorAdam 2016-11-08 17:11:07 +08:00 via Android 1
只有自增字段由 mysql 来分配时, last_insert_id()才可能得到正确的值
|
3
MajorAdam 2016-11-08 17:11:24 +08:00 via Android
problem solved
|
4
fupenghao 2016-11-09 11:19:25 +08:00
并没解决。。。。第二次返回的是 2
|
6
MajorAdam 2016-11-09 14:08:52 +08:00 1
@fupenghao 你的自增 id 是自己赋值的 4,不是 mysql 自动生成的 4,只有自增字段由 mysql 来分配时,last_insert_id()才可能得到正确的值
|
7
MajorAdam 2016-11-09 14:13:53 +08:00
"然后执行一条插入语句 MariaDB [test]> insert into auto values(1,'1'),(0,'2'),(null,'3'); Query OK, 3 rows affected (0.00 sec) 此时执行 last_insert_id ()结果为 1" 这是不可能的,此时应为 2
|