Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh menyemak sama ada Jadual Wujud dalam Skema PostgreSQL Tertentu?
Mengesahkan Kewujudan Jadual Dalam Skema PostgreSQL Tertentu
Pangkalan data PostgreSQL menyusun jadual dalam skema. Untuk mengesahkan kehadiran jadual dalam skema yang ditetapkan, gunakan kaedah ini:
Kaedah 1: Pertanyaan Katalog Sistem Terus
Pendekatan ini secara langsung menyoal siasat pg_class
katalog sistem:
<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' -- restricts to tables only );</code>
Kaedah 2: Pertanyaan Skema Maklumat (dengan kaveat)
Menggunakan information_schema
(cth., information_schema.tables
) nampaknya mudah, tetapi ambil perhatian: sekatan kebenaran mungkin membawa kepada negatif palsu. Kaedah ini berguna jika anda perlu mengesahkan akses untuk pengguna semasa:
<code class="language-sql">SELECT EXISTS ( SELECT FROM information_schema.tables WHERE table_schema = 'schema_name' AND table_name = 'table_name' );</code>
Kaedah 3: Taipkan Hantaran dengan regclass
Menghantar nama jadual yang layak skema kepada jenis regclass
mencetuskan pengecualian jika jadual itu tidak wujud. Ini mengelakkan kekaburan daripada pengecam dua petikan:
<code class="language-sql">SELECT 'schema_name.table_name'::regclass;</code>
Kaedah 4: to_regclass()
Fungsi (PostgreSQL 9.4 dan lebih baru)
Untuk PostgreSQL 9.4 dan versi seterusnya, fungsi to_regclass()
menyediakan penyelesaian yang lebih bersih. Ia mengembalikan NULL
jika objek tidak ditemui:
<code class="language-sql">SELECT to_regclass('schema_name.table_name');</code>
Pertimbangan Penting:
pg_class
atau to_regclass()
lebih disukai kerana skopnya yang lebih luas.search_path
tidak mempunyai kesan pada hasil apabila menggunakan pg_class
atau to_regclass()
.Atas ialah kandungan terperinci Bagaimanakah saya boleh menyemak sama ada Jadual Wujud dalam Skema PostgreSQL Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!