Masalah:
Anda ingin menemukan nama batasan dalam tabel di PostgreSQL.
Contoh:
Kami ingin menampilkan nama-nama kendala dalam tabel student .
Solusi:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Ini hasilnya:
| nama samaran | konteks |
|---|---|
| pemeriksaan_usia_siswa | c |
| mahasiswa_pkey | p |
| kunci_nomor_pribadi_siswa | u |
| siswa_negara_id_fkey | f |
Diskusi:
Untuk menemukan nama kendala di PostgreSQL, gunakan tampilan pg_constraint di pg_catalog skema. Bergabunglah dengan tampilan pg_catalog.pg_constraint dengan tampilan pg_class (JOIN pg_class t ON t.oid = c.conrelid ) dan gunakan relname kolom untuk memfilter batasan berdasarkan nama tabel. Dalam contoh kami, kami memilih batasan dari tabel student (WHERE t.relname ='student' ).
Pilih kolom conname dan contype untuk melihat nama kendala bersama dengan jenis kendala. Pada kolom contype , nilai 'p' untuk primary key, 'f' untuk foreign key, 'u' untuk UNIQUE kendala, dan 'c' adalah untuk CHECK kendala.
Misalnya, Anda dapat melihat batasan bernama student_pkey untuk kunci utama di student meja. contype kolom memberitahu Anda jenis kendala, yang untuk kunci utama adalah p . conname kolom dalam tampilan ini juga memberi tahu Anda tentang tabel yang berisi batasan ini.