Probleem:
U wilt de namen van de beperkingen in een tabel in PostgreSQL vinden.
Voorbeeld:
We willen de namen van de beperkingen weergeven in de tabel student
.
Oplossing:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Hier is het resultaat:
conname | contype |
---|---|
student_age_check | c |
student_pkey | p |
student_personal_number_key | u |
student_country_id_fkey | f |
Discussie:
Om de naam van een beperking in PostgreSQL te vinden, gebruikt u de weergave pg_constraint
in de pg_catalog
schema. Doe mee met de weergave pg_catalog.pg_constraint
met het uitzicht pg_class
(JOIN pg_class t ON t.oid = c.conrelid
) en gebruik de relname
kolom om de beperkingen op tabelnaam te filteren. In ons voorbeeld selecteren we de beperkingen uit de tabel student
(WHERE t.relname ='student'
).
Selecteer kolommen conname
en contype
om de naam van de beperking samen met het type van de beperking te zien. In de kolom contype
, de waarde 'p' is voor een primaire sleutel, 'f' is voor een externe sleutel, 'u' is voor de UNIQUE
beperking, en 'c' is voor de CHECK
beperking.
U kunt bijvoorbeeld de beperking zien met de naam student_pkey
voor de primaire sleutel in de student
tafel. De contype
kolom vertelt u het type beperking, dat voor de primaire sleutel p
. is . De conname
kolom in deze weergave vertelt u ook over de tabel die deze beperking bevat.