【问题标题】:MySQL: Copy table to another table with an extra columnMySQL:将表复制到另一个带有额外列的表
【发布时间】:2017-07-14 12:37:30
【问题描述】:

我有两张表,tab1 和 tab2。

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

所以我想做:

Insert into tab2 select * from tab1

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

【问题讨论】:

    标签: mysql sql insert insert-select


    【解决方案1】:

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

    INSERT INTO tab2
    SELECT *, CURRENT_TIMESTAMP()
    FROM   tab1
    

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

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

    【讨论】:

    • 好主意,但我不一定想获取当前时间并使用它。如果我想输入一个静态值,我该怎么做?我可以用“2017-07-07 19:43:00”之类的东西替换“CURRENT_TIMESTAMP()”吗?
    • 我选择了 INSERT INTO tab1 SELECT * , '07/07/07 19:43:00' FROM tab1。谢谢
    猜你喜欢
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多