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 關注
- 342 瀏覽
添加回答
舉報