复制表之间的所有记录,但行除外

时间:2014-05-17 13:16:47

标签: mysql sql

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

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

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

3 个答案:

答案 0 :(得分:1)

列出列:

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

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

(我要编写的代码中的一个例外是使用table1table2创建create table as的脚本。)

答案 1 :(得分:0)

您必须专门列出所有列:

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

答案 2 :(得分:0)

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

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