Проблем:
Искате да намерите имената на ограниченията в таблица в PostgreSQL.
Пример:
Искаме да покажем имената на ограниченията в таблицата student
.
Решение:
SELECT conname, contype FROM pg_catalog.pg_constraint JOIN pg_class t ON t.oid = c.conrelid WHERE t.relname ='student';
Ето резултата:
conname | contype |
---|---|
проверка на_възрастта на ученика | c |
udent_pkey | p |
личен_номер_ключ на ученик | u |
udent_country_id_fkey | f |
Дискусия:
За да намерите името на ограничение в PostgreSQL, използвайте изгледа pg_constraint
в pg_catalog
схема. Присъединете се към изгледа pg_catalog.pg_constraint
с изгледа pg_class
(JOIN pg_class t ON t.oid = c.conrelid
) и използвайте relname
колона за филтриране на ограниченията по име на таблица. В нашия пример избираме ограниченията от таблицата student
(WHERE t.relname ='student'
).
Изберете колони conname
и contype
за да видите името на ограничението заедно с типа на ограничението. В колоната contype
, стойността „p“ е за първичен ключ, „f“ е за външен ключ, „u“ е за UNIQUE
ограничение, а „c“ е за CHECK
ограничение.
Например, можете да видите ограничението с име student_pkey
за първичния ключ в student
маса. contype
колоната ви казва типа на ограничението, което за първичния ключ е p
. conname
колоната в този изглед също ви разказва за таблицата, съдържаща това ограничение.