【问题标题】:on insert current_timestamp in mysql在 mysql 中插入 current_timestamp
【发布时间】:2013-01-24 09:29:36
【问题描述】:

我需要更改带有时间戳数据类型的列。问题是当插入记录时,当前时间戳应该插入到该列中。我知道有 ON UPDATE CURRENT_TIMESTAMP 但对于插入我找不到方法。

【问题讨论】:

    标签: mysql alter


    【解决方案1】:

    您要查找的是 DEFAULT 关键字。

    ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
    

    【讨论】:

    • 是的,我知道可以使用 ON UPDATE。我需要的是这样的东西,改变表 TAB_NAME 添加列 COL_NAME 时间戳默认 current_stamp ON INSERT (???????) current_timestamp
    • 插入时的默认 IS。插入时不指定任何值,该列将具有默认值。就这么简单。
    • 是的,第一次插入没问题。如果我稍后在该表上插入一些记录,则插入记录时的“时间”也应该插入到默认情况下应该发生的列中。我希望不要混淆
    • 是的,你很困惑。您的意思是相同的“时间”应该在同一张表的另一列中?您是否无法从时间戳列中获取“时间”?你知道有TIME(yourTimeStampColumn) 等功能吗?
    • NAME TIME xxxx 201-01-01 10:02:12 //这个时间是我插入记录的时间 yyyy //这里应该在我插入的时候在TIME列中插入' yyyy'
    【解决方案2】:

    Rock 'Em 想要的是被告知使用 CURRENT_TIMESTAMP 作为列的默认值。不在更新中。我一直使用这个。这样,当插入记录时,您就可以确切地知道它何时发生。在许多表中,为审计跟踪等执行此操作是一种很好的做法。

    【讨论】:

      【解决方案3】:

      只需使用 DEFAULT 子句,忽略 ON UPDATE 子句,它应该适合你!

      ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP
      

      【讨论】:

        猜你喜欢
        • 2014-07-23
        • 2019-06-03
        • 2011-08-26
        • 2020-10-14
        • 2016-05-30
        • 1970-01-01
        • 2014-01-05
        • 1970-01-01
        • 2012-08-18
        相关资源
        最近更新 更多