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), автоматически добавляющее секции.
Ещё по этой СУБД
- 1170ER_BLOB_KEY_WITHOUT_LENGTH: BLOB/TEXT column used in key specification without a key length
- 1592ER_BINLOG_UNSAFE_STATEMENT: Unsafe statement written to the binary log
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text
- 1049Unknown database 'name'
- 1364Field 'name' doesn't have a default value
- 1206The total number of locks exceeds the lock table size
- 1236Got fatal error 1236 from master when reading data from binary log