首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“日期”的默认值无效

问“日期”的默认值无效
EN

Stack Overflow用户
提问于 2012-07-20 05:52:23
回答 5查看 51.8K关注 0票数 8

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

代码语言:javascript
复制
ALTER TABLE `RMS`.`transactionentry` 
CHANGE `Date` `Date` DATE DEFAULT NOW() NOT NULL

误差

代码语言:javascript
复制
Invalid default value for 'Date'

同例

代码语言:javascript
复制
alter table `RMS`.`transactionentry` 
change `Date` `Date` date default 'CURRENT_DATE' NOT NULL
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-20 05:56:03

代码语言:javascript
复制
alter table `RMS`.`transactionentry`
change `Date` `Date` date default current_timestamp NOT NULL

更新:

我不认为你能用mysql date实现这一点。您必须使用timestamp或尝试这种方法。

代码语言:javascript
复制
CREATE TRIGGER transactionentry_OnInsert BEFORE INSERT ON `RMS`.`transactionentry`
    FOR EACH ROW SET NEW.dateColumn = IFNULL(NEW.dateColumn, NOW());
票数 14
EN

Stack Overflow用户

发布于 2012-07-20 05:56:20

数据类型规范中的默认值子句指示列的默认值。除了一个例外,默认值必须是一个常量;它不能是一个函数或表达式。例如,这意味着不能将date列的默认值设置为像NOW()或CURRENT_DATE这样的函数的值。例外情况是,您可以指定CURRENT_TIMESTAMP作为时间戳列的缺省值。

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

票数 9
EN

Stack Overflow用户

发布于 2018-01-23 21:20:05

记住这可能是MYSQL版本本身的一个问题,5.6允许时间戳不带默认值,也不需要将它们设置为null,但是5.7要求您显式地设置默认值(如果不是的话)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11573586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档