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

如何处理删除功能中的GORM错误?

如何处理删除功能中的GORM错误?

Go
慕桂英4014372 2022-08-24 17:02:04
我有这个功能:var db *gorm.DBfunc DeleteCategory(id uint) error {    var category Category    category.ID = id    result := db.Delete(&category)    fmt.Println("result.Error: ", result.Error)    return result.Error}这个函数应该删除数据库中的行,但是当我使用相同的id多次调用此函数时,我希望它在第二次调用时抛出消息,但它总是返回nil:*我正在使用数据库的postgreSQLerrorresult.Error:  <nil>
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

尝试删除不存在的行不会被 SQL 标准视为错误。如果需要返回错误,则应检查“受影响的行”字段。


func DeleteCategory(id uint) error {

    c := Category{ID:id}


    db := db.Delete(&c)

    if db.Error != nil {

        return db.Error

    } else if db.RowsAffected < 1 {

        return fmt.Errorf("row with id=%d cannot be deleted because it doesn't exist", id)

    }


    return nil

}


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

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