MariaDB 「near “PARTITION” at position」が発生した場合の対処法

MariaDBで、「near “PARTITION” at position」が発生した場合の対処法を記述してます。このエラーはPARTITION作成時に発生しました。
環境
- OS CentOS Stream release 9
- MariaDB 10.10.2
- phpMyAdmin 5.2.0
エラー全文
PARTITION作成時に発生。
ALTER TABLE `sample`
PARTITION BY RANGE COLUMNS(`created_at`) (
PARTITION pat2020 VALUES LESS THAN ('2020-01-01 00:00:00'),
PARTITION pat2021 VALUES LESS THAN ('2021-01-01 00:00:00'),
PARTITION pat2022 VALUES LESS THAN ('2022-01-01 00:00:00'),
PARTITION pat2023 VALUES LESS THAN ('2023-01-01 00:00:00')
)
エラー全文
解析中に 2 個のエラーが見つかりました。
新しい ALTER 操作を開始する前にカンマがありません。 (near "PARTITION" at position 68)
認識できない alter 操作。 (near "PARTITION" at position 68)
SQL クエリ: コピー
ALTER TABLE `sample` PARTITION BY RANGE COLUMNS(`created_at`) ( PARTITION pat2020 VALUES LESS THAN ('2020-01-01 00:00:00'), PARTITION pat2021 VALUES LESS THAN ('2021-01-01 00:00:00'), PARTITION pat2022 VALUES LESS THAN ('2022-01-01 00:00:00'), PARTITION pat2023 VALUES LESS THAN ('2023-01-01 00:00:00') );
MySQL のメッセージ: ドキュメント
#1526 - Table has no partition for value from column_list
原因
PARTITIONを作成しようしたテーブルに、範囲外のデータが存在しているため。ここでいうと「2023-01-02」以上のデータがあったため
対処法
最大値を設定してあげておくから、対象の範囲までPARTITIONを作成する。
ALTER TABLE `sample`
PARTITION BY RANGE COLUMNS(`created_at`) (
PARTITION pat2020 VALUES LESS THAN ('2020-01-01 00:00:00'),
PARTITION pat2021 VALUES LESS THAN ('2021-01-01 00:00:00'),
PARTITION pat2022 VALUES LESS THAN ('2022-01-01 00:00:00'),
PARTITION pat2023 VALUES LESS THAN ('2023-01-01 00:00:00'),
PARTITION patmax VALUES LESS THAN MAXVALUE
)
-
前の記事
Google ドライブ ファイルやフォルダを選択状態にするショートカットキー 2023.05.19
-
次の記事
VBA for文の途中で先頭に戻る 2023.05.19
コメントを書く