Как я могу увидеть комментарий об ограничении PostgreSQL? - PullRequest
0 голосов
/ 04 декабря 2018

PostgreSQL имеет синтаксис КОММЕНТАРИЙ с ограничением:

COMMENT ON CONSTRAINT` constraint_name ON table_name IS 'text'`

Пример:

COMMENT ON CONSTRAINT bar_col_cons ON bar IS 'Constrains column col';

Это говорит мне, как определить комментарии по ограничениям.Но как мне тогда увидеть комментарии, которые были определены?

Вывод \d+ в таблицу включает в себя список ограничений, но он не показывает комментарии.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы можете использовать системные каталоги pg_constraint и pg_description для запроса комментариев к ограничениям.

Пример таблицы с комментариями к ограничениям:

create table test(
    id int unique,
    str text check(str <> '')
);

comment on constraint test_id_key on test is 'my comment on test_id_key';
comment on constraint test_str_check on test is 'my comment on test_str_check';

Выбрать все комментарии к ограничениям таблицы test:

select c.relname, t.conname, d.description
from pg_class c
join pg_constraint t on c.oid = t.conrelid
join pg_description d on t.oid = d.objoid and t.tableoid = d.classoid
where c.relname = 'test'

 relname |    conname     |         description          
---------+----------------+------------------------------
 test    | test_str_check | my comment on test_str_check
 test    | test_id_key    | my comment on test_id_key
(2 rows)    
0 голосов
/ 04 декабря 2018

\dd <constraint_name> должен показывать комментарий, но не фильтрует по имени таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...