1526: ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value
MySQLWas bedeutet das?
Der Partitionierungsschlüssel der einzufügenden Zeile passt zu keiner definierten Partition. Bei RANGE- oder LIST-Partitionierung schlägt das Einfügen fehl, weil keine Partition den eingehenden Wert abdeckt.
Ursache
Bei RANGE-Partitionierung wird ein Wert jenseits der höchsten Grenze eingefügt, ohne dass eine MAXVALUE-Partition definiert ist (z. B. ein Datum in der Zukunft); bei LIST-Partitionierung kommt ein nicht aufgeführter Wert an. Häufig bei zeitpartitionierten Tabellen, wenn die Partition für den neuen Zeitraum nicht rechtzeitig angelegt wird.
Lösung
Füge eine Partition hinzu, die den Wert abdeckt. Eine neue obere Partition für RANGE: ALTER TABLE my_table ADD PARTITION (PARTITION p2026 VALUES LESS THAN (2027)); Für eine Auffangpartition definiere bei RANGE MAXVALUE und bei LIST die betreffenden Werte. Richte für zeitbasierte Tabellen einen Wartungsjob (Event/Scheduler) ein, der Partitionen automatisch anlegt.
Weitere Einträge zu dieser Datenbank
- 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