全部產品
Search
文件中心

ApsaraDB for OceanBase:修改分區

更新時間:Jul 01, 2024

本文為您介紹遷移 Oracle 資料庫的資料至 OceanBase 資料庫 Oracle 租戶時,ALTER TABLE DDL 修改分區的支援轉換範圍。

總覽

modify_table_partition:
{ modify_range_partition
| modify_hash_partition
| modify_list_partition
}

modify_range_partition:
MODIFY partition_extended_name
   { partition_attributes
   | { add_range_subpartition
     | add_hash_subpartition
     | add_list_subpartition
     }
   | coalesce_table_subpartition
   | alter_mapping_table_clause
   | [ REBUILD ] UNUSABLE LOCAL INDEXES
   | read_only_clause
   | indexing_clause
   }

modify_hash_partition:
MODIFY partition_extended_name
  { partition_attributes
  | coalesce_table_subpartition
  | alter_mapping_table_clause
  | [ REBUILD ] UNUSABLE LOCAL INDEXES
  | read_only_clause
  | indexing_clause
  }

modify_list_partition:
MODIFY partition_extended_name
  { partition_attributes
  | { ADD | DROP } VALUES ( list_values )
  | { add_range_subpartition
    | add_list_subpartition
    | add_hash_subpartition 
    }
  | coalesce_table_subpartition
  | [ REBUILD ] UNUSABLE LOCAL INDEXES
  | read_only_clause
  | indexing_clause
  }

partition_attributes:
[ { physical_attributes_clause
  | logging_clause
  | allocate_extent_clause
  | deallocate_unused_clause
  | shrink_clause
  }...
]
[ OVERFLOW
  { physical_attributes_clause
  | logging_clause
  | allocate_extent_clause
  | deallocate_unused_clause
  }...
]
[ table_compression ]
[ inmemory_clause ]
[ { { LOB LOB_item | VARRAY varray } (modify_LOB_parameters) }...]

coalesce_table_subpartition:
COALESCE SUBPARTITION subpartition
  [update_index_clauses]
  [parallel_clause]
  [allow_disallow_clustering]

read_only_clause:
{ READ ONLY } | { READ WRITE }

indexing_clause:
INDEXING { ON | OFF }

支援的範圍

  • 支援通過指定分區名的方式在分區中新增 list、range 和 hash 子分區。樣本如下:

    ALTER TABLE T MODIFY PARTITION P0 ADD SUBPARTITION SP0;
    ALTER TABLE T MODIFY PARTITION P0 ADD SUBPARTITION VALUES(100);
    ALTER TABLE T MODIFY PARTITION P0 ADD SUBPARTITION VALUES LESS THAN(100);
  • 支援 UPDATE GLOBAL INDEXES 更新表中的索引。

不支援的範圍

  • 不支援通過指定分區索引值的方式在分區中新增 list、range 和 hash 子分區,提示錯誤。樣本如下:

    ALTER TABLE T MODIFY PARTITION FOR(1000) ADD SUBPARTITION SP1
  • 不支援在 list 分區索引值中新增、刪除 values,會報錯。

  • 不支援 coalesce_table_subpartition 子句最後一個 hash 子分區,將其內容分布至一個或多個剩餘子分區,然後刪除最後一個子分區,會報錯。

忽略的屬性

說明

如果同步的 DDL 中包含以下屬性的定義,則這些屬性不會被解析和轉換,最終會被忽略。

  • 不支援 read_only_clause 選擇讀寫入模式,會忽略。

  • 不支援 indexing_clause 子句修改表分區的索引屬性,會忽略。

  • 不支援 partition_attributes 子句修改分區參數,會忽略。