"日期"的默认值无效

Sha*_*oor 7 mysql default date

我想在mysql(而不是时间戳)中将日期设置为日期的默认值,但会出现以下错误

ALTER TABLE `RMS`.`transactionentry` 
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL
Run Code Online (Sandbox Code Playgroud)

错误

Invalid default value for 'Date'
Run Code Online (Sandbox Code Playgroud)

同样的情况

alter table `RMS`.`transactionentry` 
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL
Run Code Online (Sandbox Code Playgroud)

man*_*ada 13

alter table `RMS`.`transactionentry`
change `Date` `Date` date default current_timestamp NOT NULL
Run Code Online (Sandbox Code Playgroud)

更新:

我不认为你可以用mysql实现这一点date.你必须使用timestamp或尝试这种方法..

CREATE TRIGGER transactionentry_OnInsert BEFORE INSERT ON `RMS`.`transactionentry`
    FOR EACH ROW SET NEW.dateColumn = IFNULL(NEW.dateColumn, NOW());
Run Code Online (Sandbox Code Playgroud)


Bot*_* FM 9

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

有关详细信息:请参阅dev.mysql.com