这似乎是一项简单的任务,但我很难找到一种方法来做到这一点。我有两个表(A和B)具有相同的结构。两者都有一个自动增量主键。我希望表B中的数据进入表A.我试过:
insert into A select * from B
但是我收到主键已经存在的错误。当我将它们插入表A时,我希望表B中的新行获得一个新的主键 - 所以基本上从B中丢弃主键但插入所有其他列。看起来它应该是一个简单的查询,但我无法弄清楚。谢谢。
答案 0 :(得分:2)
您还要选择(并插入)auto_increment id,如果此ID已存在则会失败。要让mysql自动分配id,只需选择并插入除id:
之外的所有值INSERT INTO A (foo, bar, baz)
SELECT foo, bar, baz FROM B
答案 1 :(得分:0)
您必须指定要从表B插入到表A的列,因为您要创建一个新的ID,您可以使用如下的查询,假设column1是我们不想插入的键。< / p>
insert into A (column2, column3) select column2, column3 from B
您还可以在此link查找具有一些优秀查询示例的内容。