gorm
(12)Golang Gorm 查询 SQL Server 数据库单条记录时报错: 在 FETCH 语句中选项 NEXT 的用法无效
用 Golang 的 Gorm ORM 库,总是有惊喜。这也是为何我一直想转投 [ASP.NET EF Core](https://www.sunzhongwei.com/aspnet-ef-core-mysql-80) 的原因。这个 Go
GORM 同时连接 MySQL 和 SQL Server 两种数据库
在实现一个公司内部的质量管理平台 (使用 MySQL 数据库),需要从原有的集采平台 (基于 SQL Server) 中拉取待检验的数据。
为了快速上线,我继续沿用了最顺手的 golang gin & gorm 组合。
但是之前
gorm preload 限制 field 字段
例如,我想用 golang gorm 查询订单表中关联的代理商名称,但是用 [Gorm Preload](/gorm-preload-scenes) 又会将代理商信息中多余的敏感信息取出来,
例如联系人等信息。于是就需要限制 Preloa
Gorm select 表里所有数据包括已经软删除的数据
又写了一天的 bug ... 被 ORM 折腾死。
没关系,又活了一天,已经很厉害了。。。
## Bug 的根源
一个设备信息管理系统的表,里面会自动给设备生成设备 ID。
格式:
- 前6位为生产如期,如:211
gorm soft delete 的唯一索引问题
## bug
今天测试我的添加、修改接口时,发现一个联合唯一索引不生效。
有问题的表结构:
```
CREATE TABLE `card` (
`id` int NOT NULL AUTO_INCREMENT,
Golang Gorm Sum decimal 字段类型
感觉是 Gorm 的 Bug,在使用 Pluck 获取 Sum 结果时总是报错。
而用 Scan 就没有问题。
## 可行的做法 Scan
```
type FHSum struct {
Total float64
}
golang gorm 的多对多关系 CRUD 操作
例如,一个财务预算管理系统,需要能设置各部门的负责人,以方便控制查看权限。
而且可以一个部门设置多个负责人。
## golang gorm 的数据结构
因为我独立建了个关系表,兼容出现多对多的关系,所以用到了 gorm many2
Golang Gorm 数据插入 MySQL 失败 Error 1054: Unknown column 'xx' in 'field list'
原因是,我 Struct 中定义了一个新字段,为了方便在接口返回数据时,能补充一个数据库中没有的信息。
这导致在 Gorm 插入 MySQL 时报错,提示未知字段错误。
## 插入时,忽略指定字段
查了一下,发现 Gorm
golang gorm 2 中使用 lock for update 锁
查了一下 golang gorm 2 确实支持 lock for update。文档:
https://gorm.io/zh_CN/docs/advanced_query.html#Locking-FOR-UPDATE
```
Golang Gorm Error 1292: Incorrect datetime value: '0000-00-00' for column
## 报错内容
在用 Golang Gorm 更新 MySQL 一条数据时,报错:
```
Error 1292: Incorrect datetime value: '0000-00-00' for column 'create
上一页
下一页