我有以下代码
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)