INSERT INTO…SELECT为所有MySQL列

我正在尝试从以下位置移出旧数据:

this_table >> this_table_archive

复制所有列。我已经尝试过了,但是没有用:

INSERT INTO this_table_archive (*) VALUES (SELECT * FROM this_table WHERE entry_date < '2011-01-01 00:00:00');

注意:这些表是相同的,并已id设置为主键。

回答:

手册中描述了正确的语法。尝试这个:

INSERT INTO this_table_archive (col1, col2, ..., coln)

SELECT col1, col2, ..., coln

FROM this_table

WHERE entry_date < '2011-01-01 00:00:00';

如果id列是一个自动递增的列,并且您在两个表中都已经有一些数据,那么在某些情况下,您可能希望从列列表中省略该id并生成新的id,以避免插入原来的ID表。如果您的目标表为空,那么这将不是问题。

以上是 INSERT INTO…SELECT为所有MySQL列 的全部内容, 来源链接: utcz.com/qa/421171.html

回到顶部