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