GORM 애플리케이션에서는 존재하지 않는 행을 삭제하려고 해도 오류로 인식되지 않습니다. 적절한 오류 처리를 보장하려면 대신 영향을 받은 행 수를 검사하는 것이 중요합니다.
다음 DeleteCategory 함수를 고려하세요.
<code class="golang">var db *gorm.DB func DeleteCategory(id uint) error { var category Category category.ID = id result := db.Delete(&category) fmt.Println("result.Error: ", result.Error) return result.Error }</code>
동일한 ID로 이 함수를 여러 번 호출하면 오류가 발생하지 않습니다. 처음에 하나의 행만 삭제했는데도 오류가 발생했습니다. 이는 SQL 표준이 존재하지 않는 행 삭제를 오류로 간주하지 않기 때문입니다.
이를 수정하려면 RowsAffected 필드에 대한 검사를 추가하세요.
<code class="golang">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 }</code>
이렇게 수정하면 함수는 다음을 반환합니다. 지정된 ID를 가진 행이 존재하지 않으면 오류가 발생합니다.
위 내용은 GORM의 삭제 기능에서 존재하지 않는 행을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!