ERROR 1526 (HY000): Table has no partition for value エラーの解決
Mysql ERROR 1526 (HY000): Table has no partition for value
エラーの解決メモ
原因
パーティションの範囲外の値が指定されている。
解決方法
パーティションの範囲の範囲を増やすことで対応できます。
サンプル
テーブル作成
num < 30
の値を指定のパーティションに入れてくれます
1
2
3
4
5
6
7
8
9
10
| CREATE TABLE `sample` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,
`num` decimal (6, 4) DEFAULT 0 NOT NULL ,
PRIMARY KEY (`id`, `num`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4
PARTITION BY RANGE (FLOOR (`num`))(
PARTITION p0 VALUES LESS THAN (10),
PARTITION p1 VALUES LESS THAN (20),
PARTITION p2 VALUES LESS THAN (30)
);
|
データを入れる(エラー
作成したテーブルにデータを入れてみます。
こうすると 35
, 40
とパーティションの範囲外の30以上の値はエラーになります。
1
2
3
4
5
6
7
8
9
| INSERT INTO `sample` (`num`)
values (5)
, (10)
, (15)
, (20)
, (25)
, (30)
, (35)
, (40);
|
パーティションを追加(解決
30
以上の値が入るパーティションを追加します。
1
| ALTER TABLE `sample` ADD PARTITION (PARTITION pmax VALUES LESS THAN (MAXVALUE));
|
※ MAXVALUE
を指定すると列の最大値以下の値を指定ができます。
参考