DBAtlas · Атлас эксплуатации баз данных

1526: ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value

MySQL

Что это значит?

Значение ключа секционирования вставляемой строки не попадает ни в одну определённую секцию. При секционировании RANGE или LIST вставка завершается ошибкой, так как ни одна секция не охватывает поступившее значение.

Почему возникает?

При секционировании RANGE — вставка значения выше наибольшей границы без определённой секции MAXVALUE (например, будущей даты); при секционировании LIST — поступление значения, отсутствующего в списках. Часто встречается в таблицах, секционированных по времени, когда секция для нового периода не добавлена вовремя.

Как исправить

Добавьте секцию, охватывающую это значение. Новая верхняя секция для RANGE: ALTER TABLE my_table ADD PARTITION (PARTITION p2026 VALUES LESS THAN (2027)); Для секции, принимающей все остальные значения, определите MAXVALUE для RANGE и соответствующие значения для LIST. Для таблиц, секционированных по времени, настройте задание обслуживания (event/scheduler), автоматически добавляющее секции.

Открыть в DBAtlas →

Ещё по этой СУБД