MySQL/MariaDB:将表复制到另一个表,并在开头有一个额外的列

问题描述 投票:0回答:1

过去,我已经成功地将表从一个表复制到另一个表,如下所示:

INSERT INTO myhistory SELECT p.*, NOW(), '' FROM mymain p

在这里,额外的列位于最后。但是,我现在有一种不同的情况,其中额外列是 (a) 在表的开头,(b) 它是自动递增列。所以我尝试了这个:

INSERT INTO `starchive` null, SELECT f.* FROM `stflagged` f

这不起作用。我也尝试了 0 而不是 null,但也失败了。有什么想法吗?

mysql mariadb copy sql-insert
1个回答
0
投票

NULL 是 select 语句的一部分,因此字段数量匹配。所以:

INSERT INTO `starchive` SELECT NULL, f.* FROM `stflagged` f

或明确列出表格列:

INSERT INTO `starchive` (col2, col3, col4) SELECT f.* FROM `stflagged` f

示例参考:https://dbfiddle.uk/5vKYKdwC

© www.soinside.com 2019 - 2024. All rights reserved.