Для того, щоб вивести список всіх таблиць в PostgreSQL разом із коментарями до кожної таблиці, ви можете використовувати наступний SQL-запит:
SELECT
table_name as "Назва Таблиці",
obj_description(
(SELECT oid FROM pg_class WHERE relname = table_name), `pg_class`
) as "Коментар до Таблиці"
FROM information_schema.tables
WHERE table_schema = `public` -- Замініть `public` на схему, в якій ви шукаєте таблиці.
Цей запит використовує системні таблиці PostgreSQL, такі як information_schema.tables
та pg_class
, щоб отримати інформацію про всі таблиці у вказаній схемі (у цьому випадку "public"). Функція obj_description
використовується для отримання коментарів до таблиці на основі її oid
.
Змініть table_schema
на назву схеми, де ви шукаєте таблиці. Після виконання цього запиту ви отримаєте список всіх таблиць у вказаній схемі та їх коментарів, якщо такі існують.
Спосіб отримання коментарів до полів у PostgreSQL 16 може відрізнятися від попередніх версій. В PostgreSQL 16 можна використовувати функцію col_description
для отримання коментарів до полів. Ось оновлений запит для отримання коментарів до всіх таблиць та полів у PostgreSQL 16:
SELECT
t.table_name AS "Назва Таблиці",
obj_description((SELECT oid FROM pg_class WHERE relname = t.table_name), `pg_class`) AS "Коментар до Таблиці",
c.column_name AS "Назва Поля",
col_description((SELECT oid FROM pg_class WHERE relname = t.table_name), c.ordinal_position) AS "Коментар до Поля"
FROM information_schema.tables t
JOIN information_schema.columns c ON t.table_name = c.table_name
WHERE t.table_schema = `public`; -- Замініть `public` на схему, де ви шукаєте таблиці та поля.
Цей запит використовує функцію col_description
, щоб отримати коментарі до полів таблиці. Він також об'єднує інформацію про таблиці і поля з відповідними коментарями до таблиць та полів.
Для отримання списку всіх таблиць та всіх полів разом із коментарями до них в PostgreSQL ви можете використовувати два окремих запити: один для отримання таблиць та їх коментарів, інший для отримання полів та їх коментарів. Ось як це можна зробити:
1. Список всіх таблиць та коментарів до них:
SELECT
table_name AS "Назва Таблиці",
obj_description((SELECT oid FROM pg_class WHERE relname = table_name), `pg_class`) AS "Коментар до Таблиці"
FROM information_schema.tables
WHERE table_schema = `public` -- Замініть `public` на схему, в якій ви шукаєте таблиці.
2. Список всіх полів та коментарів до полів:
SELECT
c.table_name AS "Назва Таблиці",
c.column_name AS "Назва Поля",
(SELECT pgd.description FROM pg_catalog.pg_description pgd
WHERE pgd.objoid = c.table_oid AND pgd.objsubid = c.ordinal_position) AS "Коментар до Поля"
FROM information_schema.columns c
WHERE table_schema = `public` -- Замініть `public` на схему, де ви шукаєте таблиці та поля.
Ці два запити надають вам список всіх таблиць і їх коментарів, а також список всіх полів і коментарів до них у вказаній схемі (у цьому випадку "public").
Автор: Рудюк С.А. 2023. K2 Cloud ERP.