Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 插入多行,最后一个\u插入\u ID返回1_Mysql_Sql_Last Insert Id - Fatal编程技术网

Mysql 插入多行,最后一个\u插入\u ID返回1

Mysql 插入多行,最后一个\u插入\u ID返回1,mysql,sql,last-insert-id,Mysql,Sql,Last Insert Id,拥有: 此处显示测试代码: 1. create DB 2. create Table 3. insert 3 rows 4. select LAST_INSERT_ID() 为什么上次插入时返回1? 例外情况:3 如何获取有效的上次插入ID()?清楚地解释了此行为: 在没有参数的情况下,LAST_INSERT_ID()返回一个BIGINT无符号(64位)值,该值表示最近执行的INSERT语句为自动增量列成功插入的first(emphasis mine)自动生成的值。如果没有成功插入行,则LAS

拥有:

此处显示测试代码:

1. create DB
2. create Table
3. insert 3 rows
4. select LAST_INSERT_ID()
为什么上次插入时返回1? 例外情况:3

如何获取有效的上次插入ID()?

清楚地解释了此行为:

在没有参数的情况下,LAST_INSERT_ID()返回一个BIGINT无符号(64位)值,该值表示最近执行的INSERT语句为自动增量列成功插入的first(emphasis mine)自动生成的值。如果没有成功插入行,则LAST_INSERT_ID()的值保持不变

插入中自动递增序列生成的第一个值是1,而不是2或3,因此返回值1

我想你的困惑是关于名字
最后一个\u INSERT\u ID
。“最后”部分是指最近的insert语句,而不是该insert中最近的
id
值。

清楚地解释了这种行为:

在没有参数的情况下,LAST_INSERT_ID()返回一个BIGINT无符号(64位)值,该值表示最近执行的INSERT语句为自动增量列成功插入的first(emphasis mine)自动生成的值。如果没有成功插入行,则LAST_INSERT_ID()的值保持不变

插入中自动递增序列生成的第一个值是1,而不是2或3,因此返回值1


我想你的困惑是关于名字
最后一个\u INSERT\u ID
。“最后”部分是指最新的insert语句,而不是该insert中最新的
id
值。

mysql服务器版本:5.7.27-0ubuntu0.18.04.1(Ubuntu)mysql服务器版本:5.7.27-0ubuntu0.18.04.1(Ubuntu)
DROP DATABASE IF EXISTS TEST;
CREATE DATABASE TEST;
USE TEST;
CREATE TABLE test (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        age INT
    );

INSERT INTO test (age) VALUES (1), (2), (3);

SELECT LAST_INSERT_ID();