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)); 受け皿となるパーティションとして、RANGE では MAXVALUE を、LIST では該当する値を定義する。時間ベースのテーブルでは、パーティションを自動追加するメンテナンスジョブ (event/scheduler) を設定する。

DBAtlas で開く →

同じデータベースの他の項目