Gunakan ALTER TABLE ... SET INTERVAL untuk mengubah tipe atau nilai interval pada partisi range interval yang telah ada. Fitur ini berguna ketika granularitas partisi perlu disesuaikan setelah tabel dibuat—misalnya, beralih dari partisi bulanan ke tahunan seiring dengan kedewasaan tabel.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster PolarDB for MySQL yang menjalankan versi 8.0.2, revisi versi 8.0.2.2.1 atau lebih baru
Untuk memeriksa versi kluster Anda, lihat Kueri versi engine.
Sintaksis
ALTER TABLE table_name SET { INTERVAL(type, expr) | INTERVAL(expr) };Parameter
| Parameter | Deskripsi |
|---|---|
table_name | Nama tabel. |
INTERVAL(type) | Tipe interval. Tipe waktu yang didukung: YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, dan SECOND. Jika dihilangkan, tipe numerik akan digunakan. |
INTERVAL(expr) | Nilai interval. Jika tipe adalah SECOND, nilainya harus minimal 60. |
Contoh
Contoh berikut membuat tabel orders yang dipartisi berdasarkan bulan, lalu mengubah interval menjadi tahunan.
-- Buat tabel dengan partisi interval bulanan
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')
);
-- Ubah interval menjadi tahunan
ALTER TABLE orders SET INTERVAL(YEAR, 1);