PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да намерите името на ограничение в PostgreSQL

Проблем:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да генерирам уникален низ за запис в таблица в Postgres?

  2. Показване на изображение в Ireports с помощта на PostgreSql

  3. Как да надстроя PostgreSQL от версия 9.6 до версия 10.1 без загуба на данни?

  4. Използване на PgBouncer Connection Pooler за PostgreSQL с ClusterControl 1.8.2

  5. postgreSQL - in vs any