Получение комментариев из БД PostgreSQL - PullRequest
28 голосов
/ 05 декабря 2008

Я запускаю проект в базе данных Postgres, и мне нужно получить комментарии к столбцам в БД, которые будут использоваться в качестве заголовков таблиц и тому подобное. Я видел, что есть несколько встроенных функций ( pg_description и col_description ), но я не смог найти примеров того, как их использовать, и поиграть с ними оказался довольно бесполезным.

Так что мне было интересно, смог ли кто-нибудь сделать это раньше, и если да, то как?

Ответы [ 12 ]

0 голосов
/ 09 декабря 2008

Я задал аналогичный вопрос о комментариях Postgresql в прошлом месяце. Если вы покопаетесь в этом, на моем блоге вы встретите некоторый Perl-код, который автоматизирует процесс извлечения комментария.

Чтобы вытащить имена столбцов таблицы, вы можете использовать что-то вроде следующего:

select
     a.attname  as "colname"
    ,a.attrelid as "tableoid"
    ,a.attnum   as "columnoid"
from
    pg_catalog.pg_attribute a
    inner join pg_catalog.pg_class c on a.attrelid = c.oid
where
        c.relname = 'mytable' -- better to use a placeholder
    and a.attnum > 0
    and a.attisdropped is false
    and pg_catalog.pg_table_is_visible(c.oid)
order by a.attnum

Затем вы можете использовать кортеж tableoid, columnoid, чтобы извлечь комментарий к каждому столбцу (см. Мой вопрос).

0 голосов
/ 05 декабря 2008

Хорошо, я дошёл до степени ...

выберите col_description (идентификатор таблицы, номер столбца) ...

т.е.: выберите col_description (36698,2);

Это сработало, но есть ли более простой способ сделать это, возможно, добавить все комментарии ко всем столбцам и использовать имя таблицы вместо oid ???

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