分区操作

本文为您介绍迁移 MySQL 数据库的数据至 OceanBase 数据库 MySQL 租户时,ALTER TABLE DDL 有关分区操作同步支持的范围。

总览

ALTER TABLE tbl_name partition_options

partition_options:
    partition_option [partition_option] ...

partition_option: {
    ADD PARTITION (partition_definition)
  | DROP PARTITION partition_names
  | DISCARD PARTITION {partition_names | ALL} TABLESPACE
  | IMPORT PARTITION {partition_names | ALL} TABLESPACE
  | TRUNCATE PARTITION {partition_names | ALL}
  | COALESCE PARTITION number
  | REORGANIZE PARTITION partition_names INTO (partition_definitions)
  | EXCHANGE PARTITION partition_name WITH TABLE tbl_name [{WITH | WITHOUT} VALIDATION]
  | ANALYZE PARTITION {partition_names | ALL}
  | CHECK PARTITION {partition_names | ALL}
  | OPTIMIZE PARTITION {partition_names | ALL}
  | REBUILD PARTITION {partition_names | ALL}
  | REPAIR PARTITION {partition_names | ALL}
  | REMOVE PARTITIONING
}

支持的范围

  • 支持 ADD PARTITION 添加 RANGE 分区。

  • 支持 ADD PARTITION 添加 LIST 分区。

  • 支持删除分区:DROP PARTITION

  • 支持通过指定分区名称的方式删除分区中的行。示例如下:

    ALTER TABLE T TRUNCATE PARTITION P0;
    ALTER TABLE T TRUNCATE PARTITIONS P0,P1;
  • 支持 ALTER TABLE...PARTITION BY... 重定义分区。示例如下:

    ALTER TABLE orders PARTITION BY HASH(order_id) PARTITIONS 3;
    重要

    仅 OceanBase 数据库 4.0.0 及以上版本支持。

不支持的范围

重要

如果同步的 DDL 包含以下不支持的定义,则整个建表语句会转换失败(输出空)。

  • 不支持 ADD PARTITION 添加 HASH 分区。

  • 不支持 TRUNCATE PARTITION

  • 不支持 DISCARD PARTITION

  • 不支持 IMPORT PARTITION

  • 不支持 COALESCE PARTITION

  • 不支持 REORGANIZE PARTITION

  • 不支持 EXCHANGE PARTITION

  • 不支持 ANALYZE PARTITION

  • 不支持 CHECK PARTITION

  • 不支持 OPTIMIZE PARTITION

  • 不支持 REBUILD PARTITION

  • 不支持 REPAIR PARTITION

  • 不支持 REMOVE PARTITIONING