CURRENT_DATE/CURDATE() 不作为默认 DATE 值工作

2021-11-20 00:00:00 date default-value mysql

这里很直接的问题,我认为这应该有效,但它没有.为什么不呢?

Pretty straight forward question here, I think this should work but it doesn't. Why doesn't it?

CREATE TABLE INVOICE(
   INVOICEDATE DATE NOT NULL DEFAULT CURRENT_DATE
)

推荐答案

它不起作用,因为它不受支持

It doesn't work because it's not supported

DEFAULT 子句指定列的默认值.除了一个例外,默认值必须是一个常量;它不能是函数或表达式.这意味着,例如,您不能将日期列的默认值设置为诸如 NOW()CURRENT_DATE 之类的函数的值.例外是您可以将 CURRENT_TIMESTAMP 指定为 TIMESTAMP 列的默认值

The DEFAULT clause specifies a default value for a column. With one exception, the default value must be a constant; it cannot be a function or an expression. This means, for example, that you cannot set the default for a date column to be the value of a function such as NOW() or CURRENT_DATE. The exception is that you can specify CURRENT_TIMESTAMP as the default for a TIMESTAMP column

http://dev.mysql.com/doc/refman/5.5/en/create-table.html

相关文章