Gorm not returning ErrRecordNotFound



我有以下代码

func (r *WorkspaceRepository) Delete(id any) (bool, error) {
if err := r.db.Where("id = ?", id).Delete(&model.Workspace{}).Error; err != nil {
return false, err
}
return true, nil
}

当我传递一个不存在的ID时,不返回任何错误,就好像这个记录存在一样!

在删除之前我需要做些什么来检查,我需要先做一个SELECT吗?

删除方法不返回ErrRecordNotFound错误。这里的文档:https://gorm.io/docs/error_handling.html

GORM在First, Last, Take查找数据失败时返回ErrRecordNotFound

代码:

r.db.Where("id = ?", id).Delete(&model.Workspace{})

返回gorm.DB结构,可以检查是否删除了任何项

tx := r.db.Where("id = ?", id).Delete(&model.Workspace{})
fmt.Println(tx.RowsAffected)

相关内容

  • 没有找到相关文章

最新更新