Problem:
Chcesz znaleźć nazwy ograniczeń w tabeli w PostgreSQL.
Przykład:
Chcemy wyświetlić nazwy ograniczeń w tabeli student
.
Rozwiązanie:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Oto wynik:
conname | typ |
---|---|
student_age_check | c |
student_pkey | p |
student_personal_number_key | u |
student_country_id_fkey | f |
Dyskusja:
Aby znaleźć nazwę ograniczenia w PostgreSQL, użyj widoku pg_constraint
w pg_catalog
schemat. Dołącz do widoku pg_catalog.pg_constraint
z widokiem pg_class
(JOIN pg_class t ON t.oid = c.conrelid
) i użyj relname
kolumna, aby filtrować ograniczenia według nazwy tabeli. W naszym przykładzie wybieramy ograniczenia z tabeli student
(WHERE t.relname ='student'
).
Wybierz kolumny conname
i contype
aby zobaczyć nazwę ograniczenia wraz z typem ograniczenia. W kolumnie contype
, wartość „p” to klucz podstawowy, „f” to klucz obcy, „u” to UNIQUE
ograniczenie, a „c” oznacza CHECK
ograniczenie.
Na przykład możesz zobaczyć ograniczenie o nazwie student_pkey
dla klucza podstawowego w student
stół. contype
kolumna informuje o typie ograniczenia, którym dla klucza podstawowego jest p
. conname
kolumna w tym widoku informuje również o tabeli zawierającej to ograniczenie.