CREATE TABLE members ( id INT, fname VARCHAR(25), lname VARCHAR(25), dob DATE ) PARTITION BY RANGE (YEAR(dob)) ( PARTITION p0 VALUES LESS THAN (1970), PARTITION p1 VALUES LESS THAN (1980), PARTITION p2 VALUES LESS THAN (1990) );
ALTER TABLE members DROP PARTITION p1;
SHOW CREATE TABLE 不再顯示被刪分區。僅清空資料保留分區結構:
ALTER TABLE members TRUNCATE PARTITION p1;
ALTER TABLE members ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000));
ADD PARTITION 僅能在分區列表末尾新增(本例只能加 1990 年後)。使用 REORGANIZE PARTITION 可拆分、合併、調整範圍:
ALTER TABLE members REORGANIZE PARTITION p0 INTO ( PARTITION s0 VALUES LESS THAN (1960), PARTITION s1 VALUES LESS THAN (1970) );
ALTER TABLE members REORGANIZE PARTITION p0,p1,p2,p3 INTO ( PARTITION m0 VALUES LESS THAN (1980), PARTITION m1 VALUES LESS THAN (2000) );
ALTER TABLE ... PARTITION BY HASH(...) PARTITIONS N;(會重建表)。ALTER TABLE tbl REORGANIZE PARTITION partition_list INTO (partition_definitions);,新定義範圍必須完全覆蓋舊分區範圍。不支援 DROP/TRUNCATE/REORGANIZE,僅支援:
-- 合併分區(減少 4 個) ALTER TABLE clients COALESCE PARTITION 4; -- 增加分區(增加 6 個) ALTER TABLE clients ADD PARTITION PARTITIONS 6;
COALESCE PARTITION N:將分區數減少 N 個。ADD PARTITION PARTITIONS N:增加 N 個分區。