MySQLで "Table has no partition for value from column_list" って言われる時

こういうパーテションが設定されている状態で

CREATE TABLE `user_test` (
`username` varchar(20) NOT NULL,
`password` varchar(32) NOT NULL,
PRIMARY KEY (`username`)
) PARTITION BY RANGE COLUMNS (`username`) (
PARTITION a VALUES LESS THAN ('b'),
PARTITION b VALUES LESS THAN ('c'),
PARTITION c VALUES LESS THAN ('d')
);

こういうSQLを発行するとこういうエラーになる

mysql> INSERT INTO user_test (`username`, `password`) VALUES ('hoge', MD5('hoge'));
ERROR 1526 (HY000): Table has no partition for value from column_list

MAXVALUE指定しておけばこういうことはないけど、それはちょっと私は微妙だなと思っていて、想定しているパターンがあるなら全部指定するほうがいいんじゃないかと思う。美少女の画像を保存する時にその他ってフォルダがあると便利で何でも入れちゃうけど、MySQLのパーテションを設定する場面では分散させたい意図があるだろうからそれではダメなんじゃないかなってことだな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA