К примеру у нас есть таблица sales, которую надо секционировать по столбцам date и region.
CREATE TABLE sales (
id serial PRIMARY KEY,
date date NOT NULL,
region text NOT NULL,
amount numeric
) PARTITION BY RANGE (date, region);
Создадим секции для каждой комбинации диапазонов дат и регионов. Например, для региона "North" в диапазоне дат 2022 года.
CREATE TABLE sales_2022_north PARTITION OF sales
FOR VALUES FROM ('2022-01-01', 'North') TO ('2023-01-01', 'North');
Для региона "South" в том же диапазоне дат.
CREATE TABLE sales_2022_south PARTITION OF sales
FOR VALUES FROM ('2022-01-01', 'South') TO ('2023-01-01', 'South');
Вставка значений:
INSERT INTO sales (date, region, amount) VALUES ('2022-06-01', 'North', 100.00);
INSERT INTO sales (date, region, amount) VALUES ('2022-06-01', 'South', 200.00);
Проверка:
SELECT * FROM sales;
SELECT * FROM sales_2022_north;
SELECT * FROM sales_2022_south;