全部產品
Search
文件中心

ApsaraDB for OceanBase:修改、刪除和新增表屬性

更新時間:Jul 01, 2024

本文為您介紹遷移 Oracle 資料庫的資料至 OceanBase 資料庫 Oracle 租戶時, ALTER TABLE DDL 修改、刪除和新增表屬性的支援轉換範圍。

總覽

alter_table_properties:
{ alter_table_properties_1 | { shrink_clause 
  | RENAME TO new_table_name
  | READ ONLY
  | READ WRITE 
  | REKEY encryption_spec 
  | DEFAULT COLLATION collation_name
  | [NO] ROW ARCHIVAL
  | ADD attribute_clustering_clause
  | MODIFY CLUSTERING [ clustering_when ] [ zonemap_clause ]
  | DROP CLUSTERING
  }
}

alter_table_properties_1:
{ { physical_attributes_clause
    | logging_clause
    | table_compression
    | inmemory_table_clause
    | ilm_clause
    | supplemental_table_logging
    | allocate_extent_clause
    | deallocate_unused_clause
    | { CACHE | NOCACHE }
    | RESULT_CACHE ( MODE {DEFAULT | FORCE} )
    | upgrade_table_clause
    | records_per_block_clause
    | parallel_clause
    | row_movement_clause
    | flashback_archive_clause
    }...
  } [ alter_iot_clauses ] [ alter_XMLSchema_clause ]

physical_attributes_clause:
[ { PCTFREE integer
  | PCTUSED integer
  | INITRANS integer
  | storage_clause
  }...
]

logging_clause:
{ LOGGING | NOLOGGING |  FILESYSTEM_LIKE_LOGGING }

table_compression:
COMPRESS
| ROW STORE COMPRESS [ BASIC | ADVANCED ]
| COLUMN STORE COMPRESS [  FOR { QUERY | ARCHIVE } [ LOW | HIGH ] ]
  [ [NO] ROW LEVEL LOCKING ]
| NOCOMPRESS

inmemory_table_clause:
[ { INMEMORY [ inmemory_attributes ] } | { NO INMEMORY } ]
[ inmemory_column_clause ]

ilm_clause:
ILM
{ ADD POLICY ilm_policy_clause
| { DELETE | ENABLE | DISABLE } POLICY ilm_policy_name
| DELETE_ALL | ENABLE_ALL | DISABLE_ALL
}

supplemental_table_logging:
{ ADD SUPPLEMENTAL LOG
  { supplemental_log_grp_clause | supplemental_id_key_clause }
    [, SUPPLEMENTAL LOG
       { supplemental_log_grp_clause | supplemental_id_key_clause }
    ]...
| DROP SUPPLEMENTAL LOG
  { supplemental_id_key_clause | GROUP log_group }
    [, SUPPLEMENTAL LOG
       { supplemental_id_key_clause | GROUP log_group }
    ]...
}

allocate_extent_clause:
ALLOCATE EXTENT
  [ ( { SIZE size_clause
      | DATAFILE 'filename'
      | INSTANCE integer
      } ...
    )
  ]

deallocate_unused_clause:
DEALLOCATE UNUSED [ KEEP size_clause ]

upgrade_table_clause:
UPGRADE [ [NOT ] INCLUDING DATA ]
   [ column_properties ]

records_per_block_clause:
{ MINIMIZE | NOMINIMIZE } RECORDS_PER_BLOCK

parallel_clause:
{ NOPARALLEL | PARALLEL [ integer ] }

row_movement_clause:
{ ENABLE | DISABLE } ROW MOVEMENT

flashback_archive_clause:
FLASHBACK ARCHIVE [flashback_archive] | NO FLASHBACK ARCHIVE

alter_iot_clauses:
{ index_org_table_clause
| alter_overflow_clause
| alter_mapping_table_clauses
| COALESCE
}

alter_XMLSchema_clause:
 { ALLOW ANYSCHEMA
  | ALLOW NONSCHEMA
  | DISALLOW NONSCHEMA
  }

支援的範圍

僅支援 RENAME TO new_table_name 子句修改表名。樣本如下:

ALTER TABLE SC.T RENAME TO T2;

不支援的範圍

  • 不支援 ADD attribute_clustering_clause 子句增加聚簇屬性,會報錯。

  • 不支援 MODIFY CLUSTERING [ clustering_when ] [ zonemap_clause ] 子句允許或禁止在直接路徑插入操作或資料移動操作期間對錶進行屬性聚類,會報錯。

  • 不支援 DROP CLUSTERING 子句刪除聚簇屬性,會報錯。

  • 不支援 physical_attributes_clause 子句修改表物理屬性,會報錯。

  • 不支援 logging_clause 子句修改日誌記錄屬性,會報錯。

  • 不支援 table_compression 子句指示資料庫是否壓縮資料區段以減少磁碟和記憶體的使用,僅對堆表有效,會報錯。

  • 不支援 inmemory_table_clause 可啟用、禁用或更改 In-Memory Column Store 的表屬性,會報錯。

  • 不支援 ilm_clause 子句為表添加、刪除、啟用或禁用自動資料最佳化策略,會報錯。

  • 不支援 supplemental_table_logging 子句添加或刪除重做日誌組或重做日誌組中的一個或多個補充日誌列,會報錯。

  • 不支援 allocate_extent_clause 子句顯式地為表、分區或子分區、溢出資料區段、LOB 資料段或 LOB 索引分配一個新區段,會報錯。

  • 不支援 deallocate_unused_clause 子句顯式地釋放表、分區或子分區、溢出資料區段、LOB 資料段或 LOB索引末尾的未使用空間,會報錯。

  • 不支援 { CACHE | NOCACHE } 子句指定如何在緩衝區儲存塊,會報錯。

  • 不支援 RESULT_CACHE ( MODE {DEFAULT | FORCE} ) 子句指定查詢結果緩衝,會報錯。

  • 不支援 upgrade_table_clause 子句具有參考關聯性的錶轉換目標表的中繼資料,會報錯。

  • 不支援 records_per_block_clause 子句限制可以儲存在一個塊中的記錄數量,會報錯。

忽略的屬性

說明

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

  • READ ONLY | READ WRITE 子句設定讀寫入模式,會忽略該 option。

  • REKEY encryption_spec 子句產生新的加密金鑰或在不同演算法之間切換,會忽略該 option。

  • DEFAULT COLLATION collation_name 子句更改表的預設定序,會忽略該 option。

  • [NO] ROW ARCHIVAL 啟用或禁用錶行歸檔,會忽略該 option。