Проблем:
Искате да намерите имената на ограниченията в таблица в 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 колоната в този изглед също ви разказва за таблицата, съдържаща това ограничение.