sql >> Databáze >  >> RDS >> PostgreSQL

Jak najít název omezení v PostgreSQL

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


  1. Kritéria filtru SQL v kritériích spojení nebo klauzuli where, která je efektivnější

  2. Jak mohu vstoupit do SQL Server uloženého procesu z mého kódu C#?

  3. Databázový koutek:Průvodce pro začátečníky k úložišti Mysql

  4. Chyba připojení Postgres byla uzavřena v aplikaci Spring Boot