我有一个表有两个TIMESTAMP列(Creation_Date和Edit_date),它们自动填充INSERT(两列都获得CURRENT_TIMESTAMP)和UPDATE(只有Edit_date列被更改)
此操作由以下代码完成:
...
CreationDate
时间戳NOT NULL DEFAULT' 0000-00-00 00:00:00',EditDate
时间戳NOT NOT DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,......
我需要将类型从TIMESTAMP更改为DATE并尝试:
...
`CREATED_DATE` date NOT NULL DEFAULT '0000-00-00',
`EDITED_DATE` date NOT NULL DEFAULT CURRENT_DATE ON UPDATE CURRENT_DATE,
...
我怎样才能获得相同的行为。任何回复都将不胜感激。
答案 0 :(得分:1)
除非您使用的是mysql 5.6.5,否则不可能 唯一的选项是可用的,直到5.6.5使用字段类型作为时间戳,然后设置默认值不是常量。
数据类型规范中的DEFAULT值子句表示a 列的默认值。除了一个例外,默认值必须 是一个常数;它不能是一个功能或表达。这意味着, 例如,您不能将日期列的默认值设置为 NOW()或CURRENT_DATE等函数的值。例外 是你可以指定CURRENT_TIMESTAMP作为a的默认值 TIMESTAMP
如果您使用的是mysql 5.6.5,则可以为DATETIME数据类型
设置此行为http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html