为了账号安全,请及时绑定邮箱和手机立即绑定

如何恢复我软删除的数据与gorm删除在

如何恢复我软删除的数据与gorm删除在

Go
当年话下 2022-10-04 19:24:00
目前使用gorm和我软删除一个数据,我知道如何获取其软删除的数据,但我需要恢复它,所以如果有人知道如何做,请让我知道
查看完整描述

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


查看完整回答
反对 回复 2022-10-04
?
温温酱

TA贡献1752条经验 获得超4个赞

检查问题 4388 中提到的取消删除是否有帮助:

model.DeletedAt = gorm.DeletedAt{}

if err := o.DbPointer.Table(table).Save(&model).Error; err != nil {

    return err

}

尽管在自定义连接表中重新插入软删除关系似乎并不明显(或有效)。


查看完整回答
反对 回复 2022-10-04
?
慕沐林林

TA贡献2016条经验 获得超9个赞

使用最新的GORM版本,需要取消范围才能激活软删除的记录。

db.Unscoped().Model(&model{}).Where("id", id).Update("deleted_at", nil)


查看完整回答
反对 回复 2022-10-04
  • 3 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信