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