Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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 在insert中立即使用自动增量值_Mysql_Auto Increment - Fatal编程技术网

Mysql 在insert中立即使用自动增量值

Mysql 在insert中立即使用自动增量值,mysql,auto-increment,Mysql,Auto Increment,这是一个困扰我很久的问题。假设我有一个包含两列的表(id和file)。有没有办法在insert查询中立即使用自动递增的id?像这样: INSERT INTO `sometable` (`file`) VALUES (CONCAT(id, '-somename.ext')); 但这会导致文件为“0-somename.ext” 当然,我可以在插入之后立即进行更新,并在那里使用id。但我只是想知道,是否有任何方法可以做到这一点,只要一个快速插入 更新 我正在寻找一种解决方案,即使该表是空的,或者以前

这是一个困扰我很久的问题。假设我有一个包含两列的表(
id
file
)。有没有办法在insert查询中立即使用自动递增的id?像这样:

INSERT INTO `sometable` (`file`) VALUES (CONCAT(id, '-somename.ext'));
但这会导致
文件
为“0-somename.ext”

当然,我可以在插入之后立即进行更新,并在那里使用id。但我只是想知道,是否有任何方法可以做到这一点,只要一个快速插入

更新 我正在寻找一种解决方案,即使该表是空的,或者以前没有进行过其他插入,也可以使用
LAST_INSERT_ID()+1
不起作用,因为如果在第一次插入时使用,它将返回0(即使表不是空的)。如果之前的插入是对另一个表进行的,那么它将返回一个错误的id

为什么这个问题没有标准的解决方案

create table test (id int AUTO_INCREMENT, tx text, PRIMARY KEY (id));

insert into test(tx) values ('first');

insert into test(tx) values(concat( LAST_INSERT_ID() +1, 'blabla'));

insert into test(tx) values(concat( LAST_INSERT_ID() +1, 'blabla'));

insert into test(tx) values(concat( LAST_INSERT_ID() +1, 'blabla'));