@xiiicool

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

есть например:
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
, нужно реорганизацию делать или есть другой выход?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
@Akina
Сетевой и системный админ, SQL-программист.
Да, нужно делать реорганизацию - операция потенциально требует переноса данных между партициями.

Прмер:
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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы