【发布时间】:2014-05-17 13:16:46
【问题描述】:
我有一个语法可以从具有相同字段的表中复制所有记录:
INSERT INTO table2 SELECT * FROM table1 WHERE id = '7'
所以我想知道我如何继续复制除了'id'字段之外的所有值(因为他是主键和自动增量)。
【问题讨论】:
-
这个问题似乎离题了,因为它似乎缺乏任何研究工作
我有一个语法可以从具有相同字段的表中复制所有记录:
INSERT INTO table2 SELECT * FROM table1 WHERE id = '7'
所以我想知道我如何继续复制除了'id'字段之外的所有值(因为他是主键和自动增量)。
【问题讨论】:
您列出列:
insert into table2(col1, . . . coln)
select col1, . . ., coln
from table1
where id = '7';
在大多数情况下,您应该明确列出列。即使表具有相同的列但顺序不同,您也可能会遇到问题。
(我要编写的代码中的一个例外是在一个脚本中,其中table1 是使用create table as 从table2 创建的。)
【讨论】:
您必须专门列出所有列:
INSERT INTO table2 (col1, col2, col3, ...)
SELECT col1, col2, col3, ...
FROM table1
WHERE id = '7'
【讨论】:
您需要明确指定要复制的字段:
INSERT INTO table2 (col1, col2, col3, etc)
SELECT col1, col2, col3, etc
FROM table1
WHERE id = '7'
【讨论】: