1

我有一个带有如下列的架构。不允许空值,默认值为CURRENT_TIMESTAMP. 我正在使用休眠将数据插入到包含此列的表中。但是休眠失败并出现以下错误。在我的 DAO 中,我没有为 updateTime 设置任何值。

Error:
Column 'updateTime' cannot be null. 

Column Schema:
updateTime  timestamp CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP

谢谢

4

2 回答 2

0

这是对我有用的 MySQL 8.0 版

  • MySQL 列定义:

空表定义

  • 实体定义:

     @Basic(optional = false)
     @Column(name = "date_created", insertable = false, updatable = false)
     @Temporal(TemporalType.TIMESTAMP)
     private Date dateCreated;
    
于 2021-11-17T15:18:37.027 回答
-1

尝试在DEFAULT CURRENT_TIMESTAMP列定义中添加选项以归档如下内容:

updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

您可以使用以下 DDL 查询来执行此操作:

ALTER TABLE `your_table` MODIFY updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

或者只是删除并重新创建您的表。

在带有DEFAULT CURRENT_TIMESTAMP选项updateTime列的情况下,MySQL 服务器将在插入期间自动填充。有关更多详细信息,请参阅官方文档的此条目。

于 2013-07-16T08:34:46.583 回答