Добро пожаловать в stackoverflow! Обратите внимание, что если задать здесь вопросы без предварительного исследования, это может отпугнуть людей, которые в противном случае хотели бы помочь.
В этом случае я проверил и не нашел официального примера разбиения списка. Но если вы просто сократите свой оператор, он создаст таблицу, используя значения в столбце countrycode
для разделения:
CREATE TABLE countrymeasurements
(
countrycode int NOT NULL,
countryname character varying(30) NOT NULL,
languagename character varying (30) NOT NULL,
daysofoperation character varying(30) NOT NULL,
salesparts bigint,
replaceparts bigint
)
PARTITION BY LIST(countrycode)
;
Команда psql описывает таблицу показывает, что разбиение выполняется в соответствии с запросом:
psql=# \d countrymeasurements
Table "public.countrymeasurements"
Column | Type | Collation | Nullable | Default
-----------------+-----------------------+-----------+----------+---------
countrycode | integer | | not null |
countryname | character varying(30) | | not null |
languagename | character varying(30) | | not null |
daysofoperation | character varying(30) | | not null |
salesparts | bigint | | |
replaceparts | bigint | | |
Partition key: LIST (countrycode)
Затем вы можете определить разделы, как в ответе от @a_horse_with_no_name. Но некоторые примечания по использованию такой стратегии могут быть в порядке.
Примечания:
- Когда вы просто разрешаете 4 явных раздела через список (как вы пытались), что происходит, когда значение 5 приходит?
- В документации по адресу postgresql 12 по разделу ddl ing предлагается рассмотреть ha sh разделение вместо списка и выбрать количество разделов вместо того, чтобы полагаться на значения столбца что может выявить очень несбалансированное изобилие.