为什么自动递增列不增加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/