ALTER TABLE ... SET INTERVAL を使用して、既存のインターバルレンジパーティションの間隔タイプまたは値を変更します。これは、テーブル作成後にパーティショニングの粒度を変更する必要がある場合に役立ちます。たとえば、テーブルが成熟するにつれて、月次パーティションから年次パーティションに切り替える場合などです。
前提条件
開始する前に、以下を確認してください。
バージョン 8.0.2、リビジョンバージョン 8.0.2.2.1 以降を実行している PolarDB for MySQL クラスター
ご利用のクラスターバージョンを確認するには、「エンジンバージョンの照会」をご参照ください。
構文
ALTER TABLE table_name SET { INTERVAL(type, expr) | INTERVAL(expr) };パラメーター
| パラメーター | 説明 |
|---|---|
table_name | テーブルの名前。 |
INTERVAL(type) | 間隔タイプ。サポートされている時間型: YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、および SECOND。省略した場合、数値型が使用されます。 |
INTERVAL(expr) | 間隔値。タイプが SECOND の場合、値は 60 以上である必要があります。 |
例
次の例では、月次でパーティション分割された orders テーブルを作成し、その間隔を年次に変更します。
-- 月次インターバルパーティショニングでテーブルを作成します
CREATE TABLE orders(
orderkey BIGINT NOT NULL,
custkey BIGINT NOT NULL,
orderdate DATE NOT NULL
)
PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) (
PARTITION p0 VALUES LESS THAN('2021-10-01')
);
-- 間隔を年次に変更します
ALTER TABLE orders SET INTERVAL(YEAR, 1);