我有这个功能: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
}
- 1 回答
- 0 关注
- 123 浏览
添加回答
举报
0/150
提交
取消