技术

gorm 中 MySQL 错误码映射与主键冲突错误处理

在使用 gorm 处理数据库操作时,尤其是针对 MySQL,有时我们会遇到 golang 标准库`errors.Is`函数无法直接识别特定的 gorm 错误类型的情况,如主键冲突错误。尽管 gorm 提供了`gorm.ErrDuplicatedKey`来表示此类错误,但在原始错误返回中并不能直接通过`errors.Is(err, gorm.ErrDuplicatedKey)`来进行判断。本文深入探究 gorm.io/driver/mysql 包中的错误转换机制,揭示了如何借助`error_translator`模块将 MySQL 的错误码映射为 gorm 的错误类型。

技术 2024-03-27 11:43:05 1064

技术

GORM 中 SQL、慢 SQL 打印日志传递 trace ID

GORM 中SQL、慢SQL打印日志传递 trace ID, 重写GORM日志实现,SQL日志、慢日志请求追踪

技术 2023-09-25 11:14:27 2397

技术

【Gorm】Save 方法更新踩坑记录

在我最近使用Gorm进行字段更新的过程中,我遇到了一个问题。当我尝试更新status字段时,即使该字段的值没有发生变化,Gorm还是提示我“Duplicate entry 'xxxx' for key 'PRIMARY'”。

技术 2023-06-03 16:53:55 3610