@artemfisher

Как создать таблицу, секционированную по нескольким столбцам в PostgreSQL?

Добрый день!
Немного запутался как будут значения попадать. Приведите пример, пожалуйста.
  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Alex-ok
Программист .NET, SQL, ASP NET
К примеру у нас есть таблица 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;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы