Как мы можем объявить несколько разделов в одном операторе в Postgres

0

Вопрос

Мы можем создать несколько разделов в одной инструкции в Oracle, но как мы можем реализовать то же самое в PostgreSQL.

oracle partitioning postgresql sql
2021-11-24 04:44:10
2

Лучший ответ

1

Просто: запустите несколько CREATE TABLE заявления в одном DO заявление:

DO
'BEGIN
   CREATE TABLE IF NOT EXISTS part1 PARTITION OF tab FOR VALUES IN (1);
   CREATE TABLE IF NOT EXISTS part2 PARTITION OF tab FOR VALUES IN (2);
   CREATE TABLE IF NOT EXISTS part3 PARTITION OF tab FOR VALUES IN (3);
END';

Но я не понимаю, почему для вас так важно сделать это с помощью одного оператора SQL.

2021-11-24 06:46:07
0

Эквивалента в PostgreSQL не существует. Из-за того, как он реализует свою систему разделения, вам потребуется создать несколько таблиц одновременно. Вам нужно будет создать секционированную таблицу, и вместо того, чтобы сразу же указывать ее разделы и границы, вам нужно будет создать каждый раздел как отдельную таблицу, указав границы разделов для каждого.

Как всегда, есть гораздо больше, но ниже должна быть упрощенной по теме: в Oracle таблицу разделов способ разделения исходного, первого класса таблица "под колпаком" и в своей внутренней структуре, в то время как в PostgreSQL это наоборот - именно перегородки, которые являются автономными, первый класс столами и секционированную таблицу только связывает их вместе. Из-за этого раздел не может существовать сам по себе в Oracle и быть отделен, на него можно ссылаться отдельно или ссылаться, и обычно для взаимодействия с его разделами требуется просмотреть таблицу разделов. В PostgreSQL по большей части вы можете работать с разделами, как с обычными таблицами, и разделенная таблица на самом деле не работает без них, действуя как пустое представление.

2021-11-24 07:24:59

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................