Как добавить партицию, если уже есть maxvalue?



@xiiicool

есть например:

ALTER TABLE table_name PARTITION BY create_date (
     PARTITION p_old VALUES LESS THAN(2011-12-01),
     PARTITION p_1 VALUES LESS THAN(2012-02-01),
     PARTITION p_2 VALUES LESS THAN(MAXVALUE)
  );

Нужно добавить новую партицию с 2013 годом, но у последняя партиции maxvalue и выдаёт ошибку

VALUES LESS THAN value must be strictly increasing for each partition

, нужно реорганизацию делать или есть другой выход?


Решения вопроса 1



@Akina

Да, нужно делать реорганизацию — операция потенциально требует переноса данных между партициями.

Прмер:

CREATE TABLE table_name (create_date DATE);

ALTER TABLE table_name 
PARTITION BY RANGE(create_date + 0) (
    PARTITION p_old VALUES LESS THAN(20111201),
    PARTITION p_1 VALUES LESS THAN(20120201),
    PARTITION p_2 VALUES LESS THAN(MAXVALUE)
);

Добавляем партицию (точнее, разделяем партицию на две):

ALTER TABLE table_name
    REORGANIZE PARTITION p_2 INTO (
        PARTITION p_2 VALUES LESS THAN (20130101),
        PARTITION p_max VALUES LESS THAN (MAXVALUE)
);

DEMO


Ответы на вопрос 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *