3 回答
TA贡献1784条经验 获得超2个赞
https://gorm.io/docs/update.html#Update-single-column
您可以将列更新为 ,例如deleted_atNULL
db.Model(&User{}).Where("id", 1).Update("deleted_at", nil)
例:
type User struct {
gorm.Model
gorm.DeletedAt
Name string
}
db.AutoMigrate(&User{})
db.Create(&User{Name: "John Doe"})
u := new(User)
fmt.Println(db.First(u, 1).Error) // nil
db.Delete(u, 1)
fmt.Println(db.First(u, 1).Error) // record not found
db.Model(u).Update("deleted_at", nil)
fmt.Println(db.First(u, 1).Error) // nil
TA贡献1752条经验 获得超4个赞
检查问题 4388 中提到的取消删除是否有帮助:
model.DeletedAt = gorm.DeletedAt{}
if err := o.DbPointer.Table(table).Save(&model).Error; err != nil {
return err
}
尽管在自定义连接表中重新插入软删除关系似乎并不明显(或有效)。
TA贡献2016条经验 获得超9个赞
使用最新的GORM版本,需要取消范围才能激活软删除的记录。
db.Unscoped().Model(&model{}).Where("id", id).Update("deleted_at", nil)
- 3 回答
- 0 关注
- 278 浏览
添加回答
举报