为什么自动递增列不增加Insert into from other mysql table查询中的ID号?这是我的查询:

insert into tbl_1 (pk, col_a, col_b, col_c)
select null,col_a, col_b, col_c from tbl_2


pk中的tbl_1列始终返回相同的数字,即'1','1','1'.....有人可以告诉我应该为自动增量列选择的值是什么,以便它将返回'1 ','2','3',...等等。我在tbl_2中有大量记录,并且没有pk列。这可能是一个简单的问题,但我无法解决。

最佳答案

更改您的插入查询,

insert into tbl_1 (pk, col_a, col_b, col_c)
select null,col_a, col_b, col_c from tbl_2




insert into tbl_1 (col_a, col_b, col_c)
select col_a, col_b, col_c from tbl_2


插入时无需指定自动增量列。

对于批量插入,自动递增将不起作用。您必须使用diff方法。为您尝试此查询,

insert into tbl_1 (pk, col_a, col_b, col_c)
select @curRank := @curRank + 1 AS rank,col_a, col_b, col_c from tbl_2, (SELECT @curRank := 0) rn order by col_a


希望它会有所帮助。

关于mysql - 自动增量列不会增加mysql表中的ID数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45731711/

10-16 13:25