GORM 更新与删除
# GORM 更新与删除
更新和删除必须带明确条件,并检查返回错误与受影响行数。使用 Map 更新可以显式包含零值字段。
result := db.WithContext(ctx).
Model(&User{}).
Where("id = ?", id).
Updates(map[string]any{"active": false, "display_name": name})
if result.Error != nil {
return result.Error
}
if result.RowsAffected == 0 {
return ErrNotFound
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
有关联一致性的多步操作放入事务,并将事务对象传给内部函数。删除前区分软删除和物理删除语义;批量操作设置数量上限,避免条件缺失造成全表变更。