我有一个架构,如下所示。不允许为空,默认值为CURRENT_TIMESTAMP。我正在使用休眠模式将此数据插入表中。但是,休眠失败并显示以下错误。在我的DAO中,我没有为updateTime设置任何值。

Error:
Column 'updateTime' cannot be null.

Column Schema:
updateTime  timestamp CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP


谢谢

最佳答案

尝试在列定义中添加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选项的情况下,MySQL服务器在插入过程中会自动填充updateTime列。有关更多详细信息,请参见this entry of official documentation

10-07 22:20