Problém:
Chcete najít názvy omezení v tabulce v PostgreSQL.
Příklad:
Názvy omezení chceme zobrazit v tabulce student
.
Řešení:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Zde je výsledek:
conname | contype |
---|---|
student_age_check | c |
student_pkey | p |
student_personal_number_key | u |
student_country_id_fkey | f |
Diskuse:
Chcete-li najít název omezení v PostgreSQL, použijte pohled pg_constraint
v pg_catalog
schéma. Připojte se k zobrazení pg_catalog.pg_constraint
s pohledem pg_class
(JOIN pg_class t ON t.oid = c.conrelid
) a použijte relname
sloupec pro filtrování omezení podle názvu tabulky. V našem příkladu vybíráme omezení z tabulky student
(WHERE t.relname ='student'
).
Vyberte sloupce conname
a contype
abyste viděli název omezení spolu s typem omezení. Ve sloupci contype
, hodnota ‚p‘ je pro primární klíč, ‚f‘ je pro cizí klíč, ‚u‘ je pro UNIQUE
omezení a „c“ je pro CHECK
omezení.
Můžete například vidět omezení s názvem student_pkey
pro primární klíč u student
stůl. contype
sloupec uvádí typ omezení, což je pro primární klíč p
. conname
sloupec v tomto zobrazení také informuje o tabulce obsahující toto omezení.