函数介绍
SELECT LAST_INSERT_ID() 即为获取最后插入的ID值
此函数分为两种
LAST_INSERT_ID() 如果没有参数,则 LAST_INSERT_ID()返回一个 BIGINT UNSIGNED(64位)值,表示AUTO_INCREMENT由于最近执行的INSERT语句而成功为列添加 的第一个自动生成的值。LAST_INSERT_ID()如果没有成功插入行,则值 保持不变。
使用参数, LAST_INSERT_ID()返回无符号整数。
LAST_INSERT_ID(expr) 设置最后的自增值
如果*expr*作为参数给出,则参数 LAST_INSERT_ID()的值由函数返回,并记住作为要返回的下一个值 LAST_INSERT_ID()
例如:
SELECT LAST_INSERT_ID(0) //返回 0
SELECT LAST_INSERT_ID(100) //返回 100
SELECT LAST_INSERT_ID()+1 //返回 101
SELECT IF(LAST_INSERT_ID() = 0,
LAST_INSERT_ID(1214291269224759296),
LAST_INSERT_ID(LAST_INSERT_ID() + 1))
参考文档:
MySQL :: MySQL 5.7参考手册:dev.mysql.com/doc/refman/…
@i:=@i+1 自定义变量自增
select (@i:=@i+1) as rownum from user , (select @i:=1000000) as init;
select (@i:=@i+1) as rownum from user , (select @i:=1214291269224759296) as init;
SELECT CONVERT((@i:=@i+1),DECIMAL(18)) AS rownum , v.id FROM user v,(SELECT @i := 100000000000000000) AS i