前言
Gorm报错踩坑笔记
报错
- 报错:
invalid value, should be pointer to struct or slice
原因
解决问题
- 将
db.Where("id = ?", 1).Delete(model.User{})改为db.Where("id = ?", 1).Delete(&model.User{})
报错
- 报错:
reflect: reflect.Value.Set using unaddressable value
原因
- 将
db.Where("id = ?", 1).Find(model.User{})改为db.Where("id = ?", 1).Find(&model.User{})
解决问题
报错
- 报错:
sql: Scan error on column index 3, name "created_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time
原因
解决问题
- 在获取数据库连接时,将dsn末尾追加
parseTime=True参数
1
| dsn := username + ":" + password + "@tcp(" + host + ":" + port + ")/" + databaseName + "?charset=utf8mb4&parseTime=True&loc=Local"
|
报错
原因
- 在使用
First()或Last()查询单条数据没有查到时,一定会报这个错误
解决问题
- 在使用
First()或Last()查询单条数据时,不处理这个报错
1 2 3
| if !errors.Is(error, gorm.ErrRecordNotFound) { return error }
|
完成
参考文献
博客园——gtea
CSDN——Young heart.少年