MySQL is not allowing ON UPDATE CURRENT_TIMESTAMP for a DATETIME field

后端 未结 7 1222
情书的邮戳
情书的邮戳 2021-02-12 23:33

I have seen a lot of related questions, but I cannot place my finger on this specific question:

I have a MySQL table with both a TIMESTAMP (for when the field was create

相关标签:
7条回答
  • 2021-02-12 23:51

    MySQL does not allow functions to be used for default DateTime values. (See MySQL Data Type Defaults.)

    0 讨论(0)
  • 2021-02-13 00:01

    DATETIME cannot use CURRENT_TIMESTAMP on update. Instead, change it to a TIMESTAMP.

    Or, consider using a trigger for this situation: http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html

    EDIT: As in the comments (thanks @АлександрФишер!), this is no longer the case since MySQL 5.6.5, so another solution is to upgrade your server if possible.

    0 讨论(0)
  • 2021-02-13 00:01

    Look my picture.

    Set column Filed Type timestamp, Attributes on Update CURRENT_TIMESTAMP & Extra also . No problem after changed the filed type in Database, in my case . But not sure for all case.

    0 讨论(0)
  • 2021-02-13 00:02

    INSERT and UPDATE date/time automatically

    Works with data type: DATETIME or TIMESTAMP

    Tested on: MySQL 5.6.27-2 and MariaDB 10.1.10


    Stores the current date and time on INSERT

    CREATE TABLE table_demo (
        ...
        `CreatedAt` datetime DEFAULT CURRENT_TIMESTAMP
        ...
    );
    

    Stores the current date and time on INSERT and UPDATE

    CREATE TABLE table_demo (
        ...
        `UpdatedAt` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        ... 
    );
    

    Stores the current date and time only on UPDATE

    NOTE: when INSERT, the default value is '0000-00-00 00:00:00'

    CREATE TABLE table_demo (
        ...
        `UpdatedAt` datetime DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP
        ...
    );
    
    0 讨论(0)
  • 2021-02-13 00:09

    That feature appears to have been introduced in 5.6. Works as expected on my default OS X install.

    Reference: Automatic Timestamp Properties Before MySQL 5.6.5

    0 讨论(0)
  • 2021-02-13 00:09

    Yeah, and if you change it to timestamp , with neither DEFAULT CURRENT_TIMESTAMP nor ON UPDATE CURRENT_TIMESTAMP, it is the same as specifying both DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP.

    0 讨论(0)
提交回复
热议问题