【问题标题】:Copy all records between tables with the exception of a line [duplicate]复制除一行之外的表之间的所有记录[重复]
【发布时间】:2014-05-17 13:16:46
【问题描述】:

我有一个语法可以从具有相同字段的表中复制所有记录:

INSERT INTO table2 SELECT * FROM table1 WHERE id = '7'

所以我想知道我如何继续复制除了'id'字段之外的所有值(因为他是主键和自动增量)。

【问题讨论】:

  • 这个问题似乎离题了,因为它似乎缺乏任何研究工作

标签: mysql sql


【解决方案1】:

您列出列:

insert into table2(col1, . . . coln)
    select col1, . . ., coln
    from table1
    where id = '7';

在大多数情况下,您应该明确列出列。即使表具有相同的列但顺序不同,您也可能会遇到问题。

(我要编写的代码中的一个例外是在一个脚本中,其中table1 是使用create table astable2 创建的。)

【讨论】:

    【解决方案2】:

    您必须专门列出所有列:

    INSERT INTO table2 (col1, col2, col3, ...)
    SELECT col1, col2, col3, ...
    FROM table1
    WHERE id = '7'
    

    【讨论】:

      【解决方案3】:

      您需要明确指定要复制的字段:

      INSERT INTO table2 (col1, col2, col3, etc)
      SELECT col1, col2, col3, etc 
      FROM   table1 
      WHERE  id = '7'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-08
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-01
        相关资源
        最近更新 更多