我有两个表,两个表都将第一列作为PRIMARY,这也是一个自动递增。第一个表有67个条目,从1到67开始,第二个表有48个条目。它们都有相同的列。我想从Table2中获取内容并将它们插入Table1,以便Table1中的下一个条目从68开始。最后,我将在Table1中有115个条目,PRIMARY列也将显示。我试过这个:
INSERT INTO `Table1` SELECT * FROM `Table2`
但它说
#1062 - Duplicate entry '1' for key 'PRIMARY'
我该怎么办?
答案 0 :(得分:5)
为要插入的列命名,并从插入
中保留auto_incrment列INSERT INTO `Table1` (col2, col3, col4)
select col2, col3, col4 from `table2`
答案 1 :(得分:3)
您需要指定要输入的列,而不指定标识列。
像
这样的东西INSERT INTO `Table1` (column1, column2,...,columnn)
SELECT column1, column2,...,columnn FROM `Table2`
答案 2 :(得分:0)
SET IDENTITY_INSERT database_name.schema_name.table ON
--Do Insert Here
SET IDENTITY_INSERT database_name.schema_name.table OFF
确保没有重复的ID。
答案 3 :(得分:-1)
试试这个......
INSERT INTO Table1 (col2, col3,...)
select col2, col3,... from Table2
你可以用n列来做... 在这里,您需要指定要插入除标识列以外的数据的列名称(自动增量列)。