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.