Rumah >pangkalan data >tutorial mysql >Adakah Jadual PostgreSQL Saya Wujud dalam Skema Tertentu?
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.
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 :
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.
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!