#postgresql #jdbc #table-partitioning
#postgresql #jdbc #разбиение таблицы на разделы
Вопрос:
Учитывая имя таблицы в Postgres, откуда я знаю:
- если таблица разбита на разделы по некоторому ключу,
- каковы имена разделов этой таблицы
если я программирую для базы данных с использованием JDBC?
Например (этот пример взят из официального документа Postgres). Если я создам разделенную таблицу в Postgres:
CREATE TABLE measurement (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) PARTITION BY RANGE (logdate);
И создал несколько разделов этой таблицы:
CREATE TABLE measurement_y2006m02 PARTITION OF measurement
FOR VALUES FROM ('2006-02-01') TO ('2006-03-01');
CREATE TABLE measurement_y2006m03 PARTITION OF measurement
FOR VALUES FROM ('2006-03-01') TO ('2006-04-01');
...
CREATE TABLE measurement_y2007m11 PARTITION OF measurement
FOR VALUES FROM ('2007-11-01') TO ('2007-12-01');
CREATE TABLE measurement_y2007m12 PARTITION OF measurement
FOR VALUES FROM ('2007-12-01') TO ('2008-01-01')
TABLESPACE fasttablespace;
CREATE TABLE measurement_y2008m01 PARTITION OF measurement
FOR VALUES FROM ('2008-01-01') TO ('2008-02-01')
WITH (parallel_workers = 4)
TABLESPACE fasttablespace;
Если мне дано имя таблицы measurement, как я могу получить имена разделов: measurement_y2006m02, measurement_y2006m03, measurement_y2007m11, measurement_y2007m12, measurement_y2008m01, если я запрашиваю базу данных с помощью JDBC? Спасибо!
Комментарии:
1. Вы можете запустить
select * from pg_partition_tree('measurement');