PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So finden Sie den Namen einer Einschränkung in PostgreSQL

Problem:

Sie möchten die Namen der Constraints in einer Tabelle in PostgreSQL finden.

Beispiel:

Wir wollen die Namen der Constraints in der Tabelle student .

Lösung:

SELECT conname, contype
FROM pg_catalog.pg_constraint
JOIN pg_class t ON t.oid = c.conrelid
WHERE t.relname ='student';

Hier ist das Ergebnis:

conname Kontyp
student_age_check c
student_pkey p
student_personal_number_key du
student_country_id_fkey f

Diskussion:

Um den Namen einer Einschränkung in PostgreSQL zu finden, verwenden Sie die Ansicht pg_constraint im pg_catalog Schema. Treten Sie der Ansicht pg_catalog.pg_constraint mit der Ansicht pg_class (JOIN pg_class t ON t.oid = c.conrelid ) und verwenden Sie den relname -Spalte, um die Einschränkungen nach Tabellennamen zu filtern. In unserem Beispiel wählen wir die Constraints aus der Tabelle student (WHERE t.relname ='student' ).

Wählen Sie die Spalten conname aus und contype um den Einschränkungsnamen zusammen mit dem Einschränkungstyp anzuzeigen. In der Spalte contype , der Wert „p“ steht für einen Primärschlüssel, „f“ steht für einen Fremdschlüssel, „u“ steht für den UNIQUE Constraint und 'c' steht für CHECK Einschränkung.

Beispielsweise können Sie die Einschränkung mit dem Namen student_pkey sehen für den Primärschlüssel im student Tisch. Der contype -Spalte gibt Ihnen den Typ der Einschränkung an, der für den Primärschlüssel p ist . Der conname Spalte in dieser Ansicht informiert Sie auch über die Tabelle, die diese Einschränkung enthält.