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.