我正在寻找使用gorm for Postgres更新多行表的最佳方法。
type Info struct {
gorm.Model
Name string
Email string
}我希望能够使用gorm在单个事务中更新Info的一个片段。
我现在正以这种方式处理交易,但这似乎不够有力。
func UpdateInfos(ctx context.Context, db *gorm.DB, infos []Info) error {
var err error
tx := db.Begin()
for _, info := range infos {
tx.Model(&info).Where("id = ?", info.ID).Updates(info)
}
err = tx.Commit().Error
return err
}想知道是否有人找到了解决这类问题的方法。
发布于 2022-11-16 05:26:19
gorm v1不支持批处理更新。如果您想使用gorm v1并更新多个行,那么您必须遍历info切片。gorm v2支持批处理更新。相同的这是文件
https://stackoverflow.com/questions/74454836
复制相似问题