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();