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í.