【问题标题】:mysql inserting data to table, duplicatemysql将数据插入表,重复
【发布时间】:2016-04-26 05:54:54
【问题描述】:

我有 2 个表要合并其数据。 id 是我的关键字段(增量和不同)。 表 1 和表 2 字段说明例如: id - 名称 - 值

我想将表 2 的所有数据插入表 1,它们具有不同的数据,但在某些行中具有相同的 id。

所以当我尝试: INSERT INTO ladatabase.table2 SELECT * from ladatabase.table1;

我收到重复输入错误。

请帮助我建议如何解决它并将数据与新数据的不同 id 值结合起来。

亚历克斯。

【问题讨论】:

  • 您应该接受您选择解决问题的答案。

标签: mysql


【解决方案1】:

这里有两种方法:

首先你可以使用 id AUTO INCREMENT

INSERT INTO ladatabase.table2 
 SELECT '', name, value from ladatabase.table1;

或者你找到第一个免费 ID 并添加它

INSERT INTO ladatabase.table2 
 SELECT id+555 , name, value from ladatabase.table1;

【讨论】:

    【解决方案2】:

    不插入所有字段(从 SELECT 中排除“id”字段):

    INSERT INTO ladatabase.table2 SELECT name,value from ladatabase.table1;
    

    【讨论】:

    • 顺便说一句,如果我的桌子上有大约 30 个字段,我需要将它们全部打印出来,还是有办法只用排除的 ID 字段键入命令?
    • 在stackoverflow上使用搜索:stackoverflow.com/…
    【解决方案3】:

    您需要复制除 ID 列之外的所有列,它将分配新的 ID。您需要明确列出所有其他列。省略 ID 列将导致它获得其默认值,即auto_increment 字段的顺序 ID。

    INSERT INTO table2 (col2, col3, col4, ...)
    SELECT col2, col3, col4, ...
    FROM table1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 2017-08-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      相关资源
      最近更新 更多