создание 512 секционированных таблиц с l oop для postgresql - PullRequest
0 голосов
/ 01 апреля 2020

Я создаю таблицу, которая будет иметь 512 разделов в PostgreSQL 12. Таблица будет разделена с использованием хэширования.

Как создать 512 разделов, не создавая каждый из них вручную?

Будет ли наилучшим маршрутом создание al oop с использованием pl / pg sql?

create table dept_1 partition of dept FOR VALUES WITH (MODULUS 512, REMAINDER 0);
create table dept_2 partition of dept FOR VALUES WITH (MODULUS 512, REMAINDER 1);
create table dept_3 partition of dept FOR VALUES WITH (MODULUS 512, REMAINDER 2);
......
create table dept_512 partition of dept FOR VALUES WITH (MODULUS 512, REMAINDER 511);

1 Ответ

1 голос
/ 01 апреля 2020

вы можете использовать plpg sql внутри DO команда

DO $$
BEGIN
  FOR i IN 0..511
  LOOP
    EXECUTE format('create table %I partition of dept for values with (modulus 512, remainder %s)', 'depth_' || i + 1, i);
  END LOOP;
END;
$$;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...