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.