Kod Ralat dalam Postgres Selepas db.Exec()
Apabila melaksanakan pertanyaan menggunakan db.Exec(), ralat yang dikembalikan boleh memberikan maklumat berharga tentang status operasi. Walaupun mesej ralat sebenar mungkin berbeza-beza, pemandu Postgres menyediakan cara untuk memeriksa kod ralat untuk keadaan tertentu.
Mengakses Kod Ralat
Untuk mengakses kod ralat daripada ralat yang dikembalikan oleh db.Exec(), anda boleh menaip menegaskannya pada jenis *pq.Error dan kemudian gunakan medan Kodnya. Berikut ialah contoh:
<code class="go">if err, ok := err.(*pq.Error); ok { fmt.Println("Error code:", err.Code) }</code>
Kod Ralat untuk "Pangkalan Data tidak wujud"
Malangnya, Postgres tidak menyediakan kod ralat khusus untuk "pangkalan data tidak wujud "kesilapan. Medan Kod ralat mungkin akan ditetapkan kepada "42P01" (untuk "ralat sintaks"), tetapi ini tidak dijamin.
Menyemak Kod Ralat Tertentu
Memandangkan tiada kod ralat khusus untuk ralat "pangkalan data tidak wujud", anda perlu menghuraikan sendiri rentetan mesej ralat secara manual. Anda boleh menggunakan pakej rentetan untuk melakukan ini dengan berkesan:
<code class="go">if strings.Contains(err.Error(), "existence") && strings.Contains(err.Error(), "database") { // Database does not exist }</code>
Medan Ralat Tambahan
Selain kod ralat, jenis pq.Error menyediakan medan lain yang boleh memberikan konteks yang berharga, seperti:
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat \'Pangkalan Data tidak wujud\' dengan pq.Error dalam Postgres?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!