すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for OceanBase (Deprecated):列と列属性の追加

最終更新日:Jan 19, 2025

このトピックでは、Oracle データベースから OceanBase Database の Oracle テナントへのデータ移行中に、列と列属性を追加するための ALTER TABLE DDL 操作のサポートされている変換範囲について説明します。

構文

add_column_clause:
ADD
   ( {column_definition | virtual_column_definition
      [, column_definition | virtual_column_definition] ...
     } )
   [ column_properties ]
   [ ( out_of_line_part_storage [, out_of_line_part_storage]... ) ]

column_definition:
column [ datatype [ COLLATE column_collation_name ] ]
  [ SORT ] [ VISIBLE | INVISIBLE ]
  [ DEFAULT [ ON NULL ] expr | identity_clause ]
  [ ENCRYPT encryption_spec ]
  [ { inline_constraint }...
  | inline_ref_constraint
  ]

virtual_column_definition:
column [ datatype [ COLLATE column_collation_name ] ]
  [ VISIBLE | INVISIBLE ]
  [ GENERATED ALWAYS ] AS (column_expression) [ VIRTUAL ]
  [ evaluation_edition_clause ] [ unusable_editions_clause ]
  [ inline_constraint [ inline_constraint ]... ]

column_properties:
{ object_type_col_properties
| nested_table_col_properties
| { varray_col_properties | LOB_storage_clause }
    [ (LOB_partition_storage [, LOB_partition_storage ]...) ]
| XMLType_column_properties
}...

out_of_line_part_storage:
PARTITION partition
  { nested_table_col_properties | LOB_storage_clause | varray_col_properties }
    [ nested_table_col_properties | LOB_storage_clause | varray_col_properties ]...
[ ( SUBPARTITION subpartition
   { nested_table_col_properties | LOB_storage_clause | varray_col_properties }
     [ nested_table_col_properties | LOB_storage_clause | varray_col_properties
     ]...
    [, SUBPARTITION subpartition
     { nested_table_col_properties | LOB_storage_clause | varray_col_properties }
       [ nested_table_col_properties | LOB_storage_clause | varray_col_properties
       ]...
    ]...
  )
]

サポートされている操作

  • 通常列の追加がサポートされています。詳細については、「通常列」をご参照ください。サンプルコード:

    ALTER TABLE T ADD C1 NUMBER;
  • 仮想列の追加がサポートされています。詳細については、「仮想列」をご参照ください。サンプルコード:

    ALTER TABLE T ADD C1 NUMBER GENERATED ALWAYS AS (C+1);
  • VISIBLE | INVISIBLE オプションを使用した、列への可視性属性の追加がサポートされています。サンプルコード:

    ALTER TABLE T ADD C1 NUMBER INVISIBLE;
  • NOT NULL 制約と DEFAULT VALUE インライン制約の追加がサポートされています。サンプルコード:

    ALTER TABLE T ADD C1 NUMBER NOT NULL DEFAULT 1;
  • 複数列の同時追加がサポートされています。サンプルコード:

    ALTER TABLE T ADD (C1 NUMBER, C2 NUMBER, C3 NUMBER);
    ALTER TABLE T ADD (C1 NUMBER) ADD (C2 NUMBER) ADD (C3 NUMBER);

サポートされていない操作

  • フィールドタイプを指定しない仮想列の追加はサポートされていません。この操作を実行すると、エラーが返されます。

  • identity_clause 句を使用した自動インクリメント列の定義はサポートされていません。この操作を実行すると、エラーが返されます。

無視される句とオプション

説明

同期された DDL 文で指定された場合、次の句とオプションは無視され、解決または変換されません。

  • パーティションテーブルの新しい列のストレージ特性を指定するための out_of_line_part_storage オプション。

  • UNIQUEPRIMARY KEY、および CHECK インライン制約を追加するためのオプション。

  • 制約ステータスを指定するための constraint_state オプション。

  • 制約名を指定するための constraint name オプション。

  • オブジェクトタイプ、ネストされたテーブル、および VARRAY 列または LOB 列のストレージ特性を変更するための column_properties オプション。