>  기사  >  백엔드 개발  >  GORM의 삭제 기능에서 존재하지 않는 행을 처리하는 방법은 무엇입니까?

GORM의 삭제 기능에서 존재하지 않는 행을 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 10:26:30978검색

How to Handle Non-Existent Rows in GORM's Delete Function?

GORM 삭제 기능의 오류 처리

GORM을 사용하여 데이터베이스 삭제 작업을 할 때 존재하지 않는 데이터베이스를 어떻게 처리할지 고려하는 것이 중요합니다. 행. 기본적으로 GORM은 존재하지 않는 행을 삭제하려고 할 때 오류를 발생시키지 않습니다. 대신 result.Error 필드는 nil로 유지됩니다.

이 동작을 변경하고 존재하지 않는 행에 대한 오류를 반환하려면 RowsAffected 필드를 검사해야 합니다. 다음은 DeleteCategory 함수를 수정하는 방법입니다.

<code class="go">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>

이 수정된 함수에서:

  1. GORM의 삭제 메소드가 호출되어 결과를 db에 할당합니다.
  2. db.Error가 nil이 아니면 오류를 반환합니다.
  3. 일반적인 오류가 없는지 확인한 후 db.RowsAffected를 확인합니다. 1보다 작으면 삭제 작업의 영향을 받은 행이 없음을 나타내는 사용자 정의 오류 메시지가 반환됩니다.
  4. 행 삭제에 성공한 경우 nil 오류 값이 반환됩니다.

위 내용은 GORM의 삭제 기능에서 존재하지 않는 행을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.