我有以下代码
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
}
Run Code Online (Sandbox Code Playgroud)
当我传递一个不存在的ID时,不会返回任何错误,就好像该记录存在一样!
删除之前我需要做什么检查,是否需要先进行SELECT?
小智 7
Delete 方法不会返回 ErrRecordNotFound 错误。文档在这里: https: //gorm.io/docs/error_handling.html
当使用First、Last、Take查找数据失败时,GORM 返回 ErrRecordNotFound
代码:
r.db.Where("id = ?", id).Delete(&model.Workspace{})
Run Code Online (Sandbox Code Playgroud)
返回 gorm.DB 结构,您可以检查是否有任何项目被删除
tx := r.db.Where("id = ?", id).Delete(&model.Workspace{})
fmt.Println(tx.RowsAffected)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1186 次 |
最近记录: |