当前位置: 首页 > 面试题库 >

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

左劲
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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

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


 类似资料:
  • 问题内容: 非常直截了当的问题,我认为这应该可行,但事实并非如此。为什么不呢? 问题答案: 因为不支持,所以它不起作用 该子句指定列的默认值。除一个例外,默认值必须为常量;它不能是函数或表达式。例如,这意味着您不能将日期列的默认值设置为诸如或函数的值。唯一的例外是您可以指定列的默认值 http://dev.mysql.com/doc/refman/5.5/en/create- table.html

  • 问题内容: 我在设置Avro字段的默认值时遇到了一些问题。我有一个简单的架构,如下所示: data.avsc: 我正在使用 avro-maven-plugin v1.7.6 生成Java模型。 当我使用:创建模型的实例时 ,它会失败并出现以下异常: org.apache.avro.AvroRuntimeException:org.apache.avro.AvroRuntimeException:字

  • 我在设置Avro字段的默认值时遇到了一些问题。我有一个简单的模式,如下所示: 数据avsc: 我使用的是avro maven插件v1。7.6生成Java模型。 当我使用:创建模型的实例时,它会失败,但有一个异常: org.apache.avro.AvroRuntimeExc0019:org.apache.avro.AvroRuntimeExc0019:字段id类型: UNION pos: 0未设置

  • 问题内容: 我正在使用以下方法在ES中创建动态映射: 因此,每当我为具有字段()的文档建立索引时,它都会自动创建具有类型的字段()。因此,每当没有a时,我都会发送一个空字符串,然后引发异常。 有什么办法可以解决这个问题?我可以指定默认值吗? 问题答案: 您可以添加到所有字段,也可以全局设置: 仅字段: 全局设置 :

  • 我不明白为什么我应用程序会删除异常“字段'ID_Employeer'没有默认值”。 是我的主键,当我试图将任何信息保存到我的数据库时,我得到了这个异常,但是,当我只是试图从DB读取信息时,它是正常的。 我读了关于StackOverflow的主题,但我仍然不明白我应用程序中的答案。我正在使用Hibernate5.2.11。 我的: 我的冬眠: 下一个CharacterInfo类 主类 最后例外

  • 问题内容: 在过去的FindBugs版本中,可以使用或指示包中的所有 字段 都应视为。在FindBugs的(2.0)的当前版本和已被弃用,并且我们都应该使用JSR-305来代替。但是,JSR-305似乎并未涵盖(现已弃用的)FindBugs注释所涵盖的所有内容。 该javadoc的确实表明了一些替代品: 。这(显然)仅适用于参数,不适用于成员字段。 ,当应用于类型或包时。同样,这不适用于成员字段。