Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Anda Mengendalikan Ralat Ketiadaan Pangkalan Data Apabila Menggugurkan Pangkalan Data dengan Pemacu PostgreSQL?

Bagaimana Anda Mengendalikan Ralat Ketiadaan Pangkalan Data Apabila Menggugurkan Pangkalan Data dengan Pemacu PostgreSQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-08 04:11:01501semak imbas

How Do You Handle Database Non-Existence Errors When Dropping Databases with the PostgreSQL Driver?

Mengendalikan Ralat Ketiadaan Pangkalan Data dengan db.Exec(...)

Apabila cuba memadam pangkalan data dengan db.Exec("DROP DATABASE dbName;" ) menggunakan pemacu postgres (lib/pq), adalah berguna untuk membezakan antara ralat yang dijangkakan (cth., "pangkalan data tidak wujud") dan ralat yang tidak dijangka.

Menyemak Kod Ralat

Untuk menentukan kod ralat tertentu dikembalikan, adalah perlu untuk memeriksa ralat yang dikembalikan. Pakej lib/pq mengembalikan ralat jenis *pq.Error, iaitu struct. Struktur ini menyediakan akses kepada maklumat ralat terperinci, termasuk kod ralat.

<code class="go">if err, ok := err.(*pq.Error); ok {
    // Here err is of type *pq.Error and you can inspect its fields
    fmt.Println("pq error code:", err.Code.Name())
}</code>

Butiran Medan Ralat

Struktur *pq.Error mempunyai beberapa medan yang memberikan maklumat tentang ralat:

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

Kod Ralat Ketiadaan Pangkalan Data

Malangnya, tiada kod ralat khusus untuk ralat "pangkalan data tidak wujud" dalam PostgreSQL. Sebaliknya, anda mungkin menghadapi ralat seperti:

  • 3D000: Nama katalog tidak sah
  • 42P01: Jadual atau paparan tidak ditemui

Mengendalikan Ralat Ketiadaan Kewujudan

Memandangkan tiada kod ralat khusus, anda mungkin perlu menghuraikan mesej ralat secara manual dan menyemak frasa utama seperti "pangkalan data tidak wujud" atau "jadual atau paparan tidak ditemui."

<code class="go">if strings.Contains(err.Message, "database does not exist") {
    // Handle database non-existence error
}</code>

Dengan memeriksa medan *pq.Error dan menghuraikan mesej ralat secara manual, anda boleh mengendalikan ralat ketiadaan pangkalan data dengan berkesan dan melakukan tindakan bersyarat yang sesuai.

Atas ialah kandungan terperinci Bagaimana Anda Mengendalikan Ralat Ketiadaan Pangkalan Data Apabila Menggugurkan Pangkalan Data dengan Pemacu PostgreSQL?. 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