MySQL:将 table 复制到另一个带有额外列的 table

MySQL: Copy table to another table with an extra column

我有两个表,tab1 和 tab2。

tab2 包含 tab1 的所有列,但有一个额外的时间戳列。我想要做的是将所有行从 tab1 复制到 tab2 并为我插入的所有行输入相同的时间戳列。我可以很好地获取和输入时间,但我很困惑如何复制和插入数据并在最后一列中为我插入的所有行填写时间戳。

所以我想做:

Insert into tab2 select * from tab1

但我还想为 tab2 中的最后一列添加数据,我该怎么做?

您可以将时间戳添加到 select 列表,以便两个表的列列表匹配:

INSERT INTO tab2
SELECT *, CURRENT_TIMESTAMP()
FROM   tab1

编辑
要回答评论中的问题 - 您不必使用 CURRENT_TIMESTAMP()。任何返回时间戳的表达式都可以。您可以使用硬编码时间戳:

INSERT INTO tab2
SELECT *, TIMESTAMP('2017-07-07 19:43:00')
FROM   tab1