現在、MySQL 5.1 から派生した MySQL 5.5 を使用しています。5.1 では、日付ごとにパーティションを作成するためにできることは、to_days() 関数を使用することだけです。ただし、MySQL 5.5 では、この回避策なしで日付を直接使用できるようです。
この記事で触れていないのは、回避策から新しい方法への方法があるかどうかです。to_days() を使用していた状態から to_days() を使用しない状態に移行するにはどうすればよいですか?
現在、MySQL 5.1 から派生した MySQL 5.5 を使用しています。5.1 では、日付ごとにパーティションを作成するためにできることは、to_days() 関数を使用することだけです。ただし、MySQL 5.5 では、この回避策なしで日付を直接使用できるようです。
この記事で触れていないのは、回避策から新しい方法への方法があるかどうかです。to_days() を使用していた状態から to_days() を使用しない状態に移行するにはどうすればよいですか?
パーティション タイプを変更するにはALTER TABLE ... PARTITION BY ...
、新しいパーティションの定義を使用します。18.3.1を参照してください。RANGE および LIST パーティションの管理
REORGANIZE PARTITION を使用してテーブルのパーティション タイプを変更することはできません。つまり、(たとえば) RANGE パーティションを HASH パーティションに、またはその逆に変更することはできません。また、このコマンドを使用してパーティション式または列を変更することもできません。テーブルを削除して再作成せずにこれらのタスクのいずれかを実行するには、ALTER TABLE ... PARTITION BY ... を使用できます。次に例を示します。
したがって、参照している例に従いますが、次のように変更CREATE TABLE
しますALTER TABLE
ALTER TABLE Annual_Data
PARTITION BY RANGE COLUMNS (date_field)
(
PARTITION p01 VALUES LESS THAN ('2007-01-01'),
PARTITION p02 VALUES LESS THAN ('2008-01-01'),
PARTITION p03 VALUES LESS THAN ('2009-01-01'),
PARTITION p04 VALUES LESS THAN (MAXVALUE));