Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengenalpasti Ralat \"Pangkalan Data Tidak Wujud\" dengan Pemacu Postgres?

Bagaimana untuk Mengenalpasti Ralat \"Pangkalan Data Tidak Wujud\" dengan Pemacu Postgres?

Patricia Arquette
Patricia Arquetteasal
2024-11-02 17:03:29999semak imbas

How to Identify

Menentukan Kod Ralat yang Dikembalikan oleh db.Exec(...)

Dalam proses memadam pangkalan data menggunakan Postgres pemandu (lib/pq), percubaan dibuat untuk membezakan antara ralat biasa dan ralat "pangkalan data tidak wujud". Untuk mencapai matlamat ini, soalan berikut timbul:

Adakah terdapat pembolehubah atau mekanisme malar yang boleh digunakan untuk mengenal pasti sama ada ralat yang dikembalikan menunjukkan bahawa pangkalan data tidak wujud, atau adakah penghuraian manual rentetan ralat diperlukan?

Walaupun dokumentasi Postgres tidak menyebut secara khusus kod ralat "pangkalan data tidak wujud", pakej lib/pq mengembalikan ralat jenis *pq.Error, struct dengan pelbagai medan yang menyediakan maklumat ralat terperinci.

Untuk menyemak kod ralat dan melakukan tindakan bersyarat yang diingini, teruskan seperti berikut:

<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>

Struktur *pq.Error termasuk medan berikut, setiap satu mengandungi maklumat dan nilai khusus 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>

Senarai penuh makna dan kemungkinan nilai untuk medan ini boleh didapati dalam dokumentasi Postgres di: Ralat dan Medan Mesej Notis.

Dengan menggunakan medan ini, adalah mungkin untuk mengenal pasti dengan tepat dan mengendalikan keadaan ralat yang diingini apabila menggunakan pemacu Postgres untuk operasi pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Mengenalpasti Ralat \"Pangkalan Data Tidak Wujud\" dengan Pemacu Postgres?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn