db.Exec(...)에서 반환된 오류 코드 확인
Postgres를 사용하여 데이터베이스를 삭제하는 중 드라이버(lib/pq)에서는 일반 오류와 "데이터베이스가 존재하지 않습니다" 오류를 구별하려고 시도합니다. 이를 달성하려면 다음과 같은 질문이 제기됩니다.
반환된 오류가 데이터베이스가 존재하지 않음을 나타내는지, 아니면 오류 문자열을 수동으로 구문 분석해야 하는지 식별하는 데 사용할 수 있는 상수 변수 또는 메커니즘이 있습니까?
Postgres 문서에는 "데이터베이스가 존재하지 않습니다" 오류 코드에 대한 구체적인 언급이 없지만 lib/pq 패키지는 자세한 오류 정보를 제공하는 다양한 필드가 있는 구조체인 *pq.Error 유형의 오류를 반환합니다.
오류 코드를 확인하고 원하는 조건부 작업을 수행하려면 다음과 같이 진행하세요.
<code class="go">if err, ok := err.(*pq.Error); ok { // Here err is of type *pq.Error, you may inspect all its fields, e.g.: fmt.Println("pq error:", err.Code.Name()) }</code>
*pq.Error 구조체에는 다음 필드가 포함되어 있으며 각 필드에는 Postres 관련 정보와 값이 포함되어 있습니다.
<code class="go">type Error struct { Severity string Code ErrorCode Message string Detail string Hint string Position string InternalPosition string InternalQuery string Where string Schema string Table string Column string DataTypeName string Constraint string File string Line string Routine string }</code>
이러한 필드의 의미와 가능한 값의 전체 목록은 Postgres 설명서의 오류 및 알림 메시지 필드에서 확인할 수 있습니다.
이러한 필드를 활용하면 데이터베이스 작업을 위해 Postgres 드라이버를 사용할 때 원하는 오류 조건을 처리합니다.
위 내용은 Postgres 드라이버에서 \"데이터베이스가 존재하지 않습니다\" 오류를 식별하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!