Rumah >pangkalan data >tutorial mysql >Adakah Jadual PostgreSQL Saya Wujud dalam Skema Tertentu?

Adakah Jadual PostgreSQL Saya Wujud dalam Skema Tertentu?

DDD
DDDasal
2025-01-22 15:57:10377semak imbas

Does My PostgreSQL Table Exist in a Specific Schema?

Bagaimana untuk menyemak sama ada jadual wujud dalam skema syarikat yang ditentukan

Apabila menggunakan pangkalan data PostgreSQL, selalunya perlu untuk menyemak sama ada jadual wujud dalam skema tertentu. Pengesahan ini menjadi kritikal terutamanya dalam kes di mana jadual mungkin wujud dalam kedua-dua skema awam dan skema khusus syarikat.

Definisi Masalah

Sama seperti situasi yang diterangkan dalam soalan, jadual mungkin wujud dalam pelbagai skema "syarikat" (cth. syarikat1, syarikat2, syarikatnn) dan hanya perlu disemak dalam skema khusus ini, yang menimbulkan cabaran berikut :

  • Menentukan sama ada jadual wujud dalam skema syarikat yang diberikan, walaupun jika ia wujud dalam skema lain seperti 'awam'.

Penyelesaian: Direktori sistem dan pertanyaan langsung

Untuk menyelesaikan masalah ini dengan berkesan, elakkan bergantung pada skema maklumat kerana ia mungkin tidak menggambarkan kewujudan jadual dengan tepat disebabkan kebenaran pengguna. Sebaliknya, tanya katalog sistem pg_class dan pg_namespace secara langsung untuk mendapatkan hasil yang tepat. Pertanyaan berikut boleh digunakan:

<code class="language-sql">SELECT EXISTS (
   SELECT FROM pg_catalog.pg_class c
   JOIN   pg_catalog.pg_namespace n ON n.oid = c.relnamespace
   WHERE  n.nspname = 'schema_name'
   AND    c.relname = 'table_name'
   AND    c.relkind = 'r'    -- only tables
   );</code>

Pertanyaan ini memastikan bahawa jadual wujud dalam 'schema_name' yang ditentukan dan tidak termasuk skema lain.

Alternatif: Tukar kepada kelas reg

Pendekatan lain melibatkan penukaran nama jadual kepada 'kelas reg':

<code class="language-sql">SELECT 'schema_name.table_name'::regclass;</code>

Kaedah ini akan membuang pengecualian jika jadual tidak wujud dalam skema yang ditentukan. Mengendalikan pengecualian ini menyediakan pengesahan yang diperlukan.

Output yang disemak ini mengekalkan pemformatan dan imej asal, sambil menyusun semula ayat dan perenggan untuk mencapai parafrasa tanpa mengubah maksud teras Kandungan teknikal kekal utuh.

Atas ialah kandungan terperinci Adakah Jadual PostgreSQL Saya Wujud dalam Skema Tertentu?. 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