sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan finder du navnet på en begrænsning i PostgreSQL

Problem:

Du ønsker at finde navnene på begrænsningerne i en tabel i PostgreSQL.

Eksempel:

Vi ønsker at vise navnene på begrænsningerne i tabellen student .

Løsning:

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

Her er resultatet:

conname contype
student_age_check c
student_pkey p
elev_personligt_nummer_nøgle u
student_country_id_fkey f

Diskussion:

For at finde navnet på en begrænsning i PostgreSQL skal du bruge visningen pg_constraint i pg_catalog skema. Deltag i visningen pg_catalog.pg_constraint med visningen pg_class (JOIN pg_class t ON t.oid = c.conrelid ) og brug relname kolonne for at filtrere begrænsningerne efter tabelnavn. I vores eksempel vælger vi begrænsningerne fra tabellen student (WHERE t.relname ='student' ).

Vælg kolonner conname og contype for at se begrænsningsnavnet sammen med begrænsningstypen. I kolonnen contype , værdien 'p' er for en primærnøgle, 'f' er for en fremmednøgle, 'u' er for UNIQUE begrænsning, og 'c' er for CHECK begrænsning.

For eksempel kan du se begrænsningen med navnet student_pkey for den primære nøgle i student bord. contype kolonne fortæller dig typen af ​​begrænsningen, som for den primære nøgle er p . conname kolonnen i denne visning fortæller dig også om tabellen, der indeholder denne begrænsning.


  1. Brug sys.trigger_event_types til at vise triggerhændelsestyper i SQL Server

  2. Oversigt over datakomprimering i SQL Server

  3. PostgreSQL - Tilføj nøgle til hvert objekt i et JSONB-array

  4. Sådan sender du parameter til mssql-forespørgsel i node js