我希望将日期设置为mysql中日期的默认值(不是时间戳),但出现以下错误
ALTER TABLE `RMS`.`transactionentry`
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL误差
Invalid default value for 'Date'同例
alter table `RMS`.`transactionentry`
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL发布于 2012-07-20 05:56:03
alter table `RMS`.`transactionentry`
change `Date` `Date` date default current_timestamp NOT NULL更新:
我不认为你能用mysql date实现这一点。您必须使用timestamp或尝试这种方法。
CREATE TRIGGER transactionentry_OnInsert BEFORE INSERT ON `RMS`.`transactionentry`
FOR EACH ROW SET NEW.dateColumn = IFNULL(NEW.dateColumn, NOW());发布于 2012-07-20 05:56:20
数据类型规范中的默认值子句指示列的默认值。除了一个例外,默认值必须是一个常量;它不能是一个函数或表达式。例如,这意味着不能将date列的默认值设置为像NOW()或CURRENT_DATE这样的函数的值。例外情况是,您可以指定CURRENT_TIMESTAMP作为时间戳列的缺省值。
发布于 2018-01-23 21:20:05
记住这可能是MYSQL版本本身的一个问题,5.6允许时间戳不带默认值,也不需要将它们设置为null,但是5.7要求您显式地设置默认值(如果不是的话)
https://stackoverflow.com/questions/11573586
复制相似问题