我正在将go-gorm与postgres 11 DB一起使用,并面临一个问题,即在创建记录时我需要完全删除RESING子句(默认情况下似乎包含该语句)。我只想插入记录,除了错误之外,什么都不找回。我在数据库上有一些复杂的关系,不支持RESING语句,所以当我尝试像这样插入时:(为了简洁起见,使代码更简单)
type Cargo struct {
Id int64 `gorm:"primaryKey"`
Name string
}
dsnString := fmt.Sprintf("host=%s ...")
db, _ := gorm.Open(postgres.New(postgres.Config{DSN: dsnString}), &gorm.Config{})
cargo := Cargo{Name: "test"}
db.Create(cargo)
我收到错误“错误:无法在关系货物上执行插入返回”。
我尝试使用参数 WithoutReturning 创建 db 连接:true:
db, _ := gorm.Open(postgres.New(postgres.Config{DSN: dsnString, , WithoutReturning: true}), &gorm.Config{})
但是,当我尝试时,我得到一个不同的错误:“此驱动程序不支持LastInsertId”。无论如何,它似乎仍在尝试获取最后插入的id。db.Create(cargo)
在go-pg中,我可以使用,但我找不到一种方法来使用go-gorm来做到这一点。任何帮助都非常感谢。db.Model(x).Returning("null").Insert(cargo)
慕尼黑8549860
胡说叔叔
相关分类