inkmouse

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在MySQL中,'0000-00-00 00:00:00'不是一个合法的DATETIME值。从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列,除非明确允许。

在gorm中,如果没有为DATETIME类型的字段提供具体的时间值,MySQL就会尝试插入默认值'0000-00-00 00:00:00',从而导致这个错误。

解决办法
三选一

1、插入时确保让对应的列有值

2、对应的列设置默认值可以为null

type:DATETIME; default:NULL;
3、对应的列直接改为指针类型,只要字段是指针类型,gorm会自动处理并允许插入时该字段为NULL。

如果你想在每次设置时默认为当前时间:

DEFAULT:CURRENT_TIMESTAMP


本人解决办法:在代码表结构里设置类型time.Time,写入time.Now()
go和mysql数据类型对应:https://blog.csdn.net/qqqqll3/article/details/88538514

原文链接:https://blog.csdn.net/HYZX_9987/article/details/135411963

posted on 2024-08-13 10:07  末日晨星  阅读(389)  评论(0)    收藏  举报