使用自动递增的相同PRIMARY键加入2个表

时间:2013-10-18 04:06:58

标签: mysql sql sql-server

我有两个表,两个表都将第一列作为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'

我该怎么办?

4 个答案:

答案 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。

See this page

答案 3 :(得分:-1)

试试这个......

INSERT INTO Table1 (col2, col3,...)
select col2, col3,... from Table2

你可以用n列来做... 在这里,您需要指定要插入除标识列以外的数据的列名称(自动增量列)。