sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man hittar namnet på en begränsning i PostgreSQL

Problem:

Du vill hitta namnen på begränsningarna i en tabell i PostgreSQL.

Exempel:

Vi vill visa namnen på begränsningarna i tabellen student .

Lösning:

SELECT conname, contype
FROM pg_catalog.pg_constraint
JOIN pg_class t ON t.oid = c.conrelid
WHERE t.relname ='student';

Här är resultatet:

conname contype
student_age_check c
student_pkey p
student_personlig_nummernyckel u
student_country_id_fkey f

Diskussion:

För att hitta namnet på en begränsning i PostgreSQL, använd vyn pg_constraint i pg_catalog schema. Gå med i vyn pg_catalog.pg_constraint med vyn pg_class (JOIN pg_class t ON t.oid = c.conrelid ) och använd relname kolumn för att filtrera begränsningarna efter tabellnamn. I vårt exempel väljer vi begränsningarna från tabellen student (WHERE t.relname ='student' ).

Välj kolumner conname och contype för att se begränsningsnamnet tillsammans med begränsningstypen. I kolumnen contype , värdet 'p' är för en primärnyckel, 'f' är för en främmande nyckel, 'u' är för UNIQUE begränsning, och 'c' är för CHECK begränsning.

Till exempel kan du se begränsningen som heter student_pkey för primärnyckeln i student tabell. contype kolumnen berättar vilken typ av begränsningen, som för primärnyckeln är p . conname kolumnen i den här vyn berättar också om tabellen som innehåller denna begränsning.


  1. Hur man flyttar datafiler i SQL Server – Del 1

  2. Använder variabel i SQL LIKE-satsen

  3. Lagring av binära datatyper i SQL Server

  4. hur man använder dbms_scheduler för att köra jobbet var 30:e minut