0

範囲パーティション化を実装して作成されたテーブルがあります。句は次のとおりです。

    ...partition by range (DAYOFMONTH(day)) 
   (PARTITION p0 VALUES LESS THAN (1),
    PARTITION p1 VALUES LESS THAN (2),
    PARTITION p2 VALUES LESS THAN (3),
    ...
    PARTITION p30 VALUES LESS THAN (31)
    );

ここで、分割条件を次のように変更したい

   .... partition by range (DAYOFMONTH(day) mod 31)

残りの個々のパーティション定義は同じままです。任意の ALTER TABLE コマンドでこれを行うことは可能ですか?それとも最初にパーティショニングを削除して、新しい条件でパーティションを再作成する必要がありますか? これについてかなり調べましたが、見つかったすべての情報は個々のパーティションの再編成に関するものでした.ありがとう.

4

1 に答える 1

1

そして、あなたは次のことがうまくいかないと言っていますか?バージョン 5.6.10 を試してみました。

ALTER TABLE table_name 
   PARTITION BY RANGE( DAYOFMONTH(day) mod 31 ) (
   PARTITION p0 VALUES LESS THAN (1),
   PARTITION p1 VALUES LESS THAN (2),
   PARTITION p2 VALUES LESS THAN (3),
   PARTITION p3 VALUES LESS THAN (4),
   ...
   PARTITION p30 VALUES LESS THAN (31)
);
于 2013-07-09T20:16:03.987 に答える