>  기사  >  백엔드 개발  >  Postgres에서 pq.Error로 발생하는 \'데이터베이스가 존재하지 않습니다\' 오류를 처리하는 방법은 무엇입니까?

Postgres에서 pq.Error로 발생하는 \'데이터베이스가 존재하지 않습니다\' 오류를 처리하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 07:33:02493검색

How to Handle

db.Exec() 이후 Postgres의 오류 코드

db.Exec()를 사용하여 쿼리를 실행할 때 반환되는 오류는 다음을 제공할 수 있습니다. 작업 상태에 대한 귀중한 정보입니다. 실제 오류 메시지는 다를 수 있지만 Postgres 드라이버는 특정 조건에 대한 오류 코드를 검사하는 방법을 제공합니다.

오류 코드 액세스

db.Exec()에서 반환된 오류가 있는 경우 이를 *pq.Error 유형에 입력한 다음 해당 코드 필드를 사용할 수 있습니다. 예는 다음과 같습니다.

<code class="go">if err, ok := err.(*pq.Error); ok {
    fmt.Println("Error code:", err.Code)
}</code>

"데이터베이스가 존재하지 않습니다"에 대한 오류 코드

안타깝게도 Postgres는 "데이터베이스가 존재하지 않습니다"에 대한 특정 오류 코드를 제공하지 않습니다. " 오류. 오류의 코드 필드는 "42P01"("구문 오류"용)로 설정될 가능성이 높지만 이는 보장되지 않습니다.

특정 오류 코드 확인

"데이터베이스가 존재하지 않습니다" 오류에 대한 특정 오류 코드가 없으므로 오류 메시지 문자열을 직접 수동으로 구문 분석해야 합니다. strings 패키지를 사용하여 이 작업을 효과적으로 수행할 수 있습니다:

<code class="go">if strings.Contains(err.Error(), "existence") && strings.Contains(err.Error(), "database") {
    // Database does not exist
}</code>

추가 오류 필드

오류 코드 외에도 pq.Error 유형은 다른 필드를 제공합니다. 다음과 같은 귀중한 컨텍스트를 제공할 수 있습니다.

  • 메시지: 오류 메시지 문자열
  • 세부사항: 오류에 대한 자세한 정보
  • 힌트: 방법에 대한 힌트 오류 해결
  • 위치: 입력 쿼리에서 오류가 발생한 위치
  • 위치: 쿼리 내 오류의 소스

위 내용은 Postgres에서 pq.Error로 발생하는 \'데이터베이스가 존재하지 않습니다\' 오류를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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