MySQL DATE字段,默认为CURDATE不是DATETIME

问题描述

你不能。该文档对此非常清楚:

例如,这意味着您不能将日期列的默认值设置为诸如NOW()或CURRENT_DATE之类的函数的值。例外是您可以将CURRENT_TIMESTAMP指定为TIMESTAMP和DATETIME列的默认值。请参见第12.3.5节“ TIMESTAMP和DATETIME的自动初始化和更新”。

您可以执行以下操作之一:

  • 为设置一个具有默认值的列DATETIME。创建将日期提取为单独列的视图。
  • 创建insert触发器以设置date列。

解决方法

是否可以将MySQL 5.7中DATE( NOT DATETIME )列上的默认值设置为当前日期?
我尝试使用此方法(由Workbench生成):

ALTER TABLE `db`.`table` CHANGE COLUMN `column` `column` DATE NOT NULL DEFAULT CURDATE() ;

但不适用于我。(表中没有数据)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...