sql >> Database >  >> RDS >> PostgreSQL

De naam van een beperking vinden in PostgreSQL

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.


  1. Veldregels toepassen met classificatie

  2. ORA-01036:ongeldige variabele naam/nummer bij het uitvoeren van een query via C#

  3. MySQL LIMIT-clausule equivalent voor SQL SERVER

  4. Hoe vind je vergelijkbare resultaten en sorteer je op overeenkomst?