PostgreSQL

PostgreSQL: Запрос на получение списка комментариев к колонкам таблицы

В сем посте будет освещен один из способов хранить человекочитаемые наименования колонок таблицы.

Организовать это можно через комментарий к полю. Задать его можно через интерфейс pgAdmin, в свойствах поля:

Или прописать в скрипте:

COMMENT ON COLUMN public.products.product_id
    IS 'Комментарий';
Добавление комментария к колонке

Допустим, комментарии ко всем колонкам прописаны. Как их теперь получить запросом, чтоб красивенько вывести таблицу на форме?

select subq.attname::text, d.description
	FROM 
		(SELECT c.relname, obj_description(c.oid) obj_description, a.attname, c.oid, a.attnum
		FROM pg_class c, pg_attribute a
		WHERE c.oid = a.attrelid
		AND c.relname in ('products')
		AND a.attnum > 0) subq 
	LEFT OUTER JOIN pg_description d ON (d.objsubid = subq.attnum AND d.objoid = subq.oid)
	where subq.attname not ilike '%pg.dropped%';
Имена колонок таблицы products и комментарии к ним

В скобках в выделенной строке можно перечислить несколько таблиц через запятую. Условие после WHERE нужно для того, чтобы в результате запроса не фигурировали строки, оставшиеся после удаленных колонок таблицы. Вот такие:

 

Оставьте своё мнение...

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.