PostgreSQL | Сколько секций (партиций) создано у таблицы?

PostgreSQL | Сколько секций (партиций) создано у таблицы?

Сколько дочерних таблиц создано у родительской таблицы в PostgreSQL?

select count(*) from pg_inherits
where inhparent = (select oid from pg_class where relname = 't_all_dp');

Сначала нам нужно получить OID нашей родительской таблицы из представления «pg_class«. Имя нашей таблицы хранится в столбце «relname«.

Затем в представлении «pg_inherits» мы отбираем все записи, в которых значение в столбце «inhparent» равно нашему OID.

После этого можем выполнить агрегацию count().

Если мы получаем 0, то у данной таблицы нет дочерних таблиц, но при этом она может быть секционированной.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Официальный сайт клиента DBeaver для СУБД PostgreSQLhttps://dbeaver.io