inkmouse

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  3 随笔 :: 0 文章 :: 0 评论 :: 97 阅读

在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   末日晨星  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示