DBAtlas · Atlas für Datenbankbetrieb

1526: ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value

MySQL

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank