ALTER TABLE文

alter tableコマンドを使用すると、次の操作を実行できます。
  • 表スキーマへのスキーマ・フィールドの追加
  • 表スキーマからのスキーマ・フィールドの削除
  • 表スキーマのスキーマ・フィールドの変更
  • リージョンの追加
  • リージョンの削除
  • アイデンティティ定義の変更
  • アイデンティティの削除
  • 表の存続時間値の変更

1つのコマンドで指定できる操作のタイプは1つだけです。たとえば、スキーマ・フィールドの削除とTTL値の設定を一緒に行うことはできません。

構文

alter_table_statement ::= 
   ALTER TABLE name_path (alter_field_statements | ttl_definition)

alter_field_statements ::= 
   "(" alter_field_statement ("," alter_field_statement)* ")"

alter_field_statement ::= 
   add_field_statement | drop_field_statement | modify_field_statement | alter_regions_statement

add_field_statement ::= 
   ADD schema_path type_definition 
   [default_definition | identity_definition | uuid_definition | mr_counter_definition]
   [comment]

drop_field_statement ::= DROP schema_path

modify_field_statement ::= 
   (MODIFY schema_path identity_definition) | 
   (DROP IDENTITY)

alter_regions_statement ::= add_regions_statement | drop_regions_statement

add_regions_statement ::= ADD REGIONS region_names

drop_regions_statement ::= DROP REGIONS region_names

region_names ::= region_name ["," region_name]*

schema_path ::= init_schema_path_step ("." schema_path_step)*
init_schema_path_step ::= id ("[" "]")*
    schema_path_step ::= id ("[" "]")* | VALUES "(" ")"

セマンティクス

modify_field_statement

MODIFYキーワードを使用して、アイデンティティ列のみを変更できます。

add_field_statement
フィールドを追加しても、表内の既存の行には影響しません。フィールドを追加すると、そのデフォルト値またはNULLが、このフィールドを含まない既存の行で、このフィールドの値として使用されます。追加するフィールドは、最上位フィールド(つまり、表の列)にすることも、階層表スキーマ内で深くネストすることもできます。その結果、フィールドはパスを介して指定されます。パス構文は、問合せで使用されるもののサブセットであり、パス式の項で説明します。

ノート:

mr_counter_definitionパラメータは、列の型をMR_COUNTERデータ型として宣言します。このデータ型は、複数リージョン表でのみ使用できます。
drop_field_statement

フィールドを削除しても、表内の既存の行には影響しません。フィールドが削除されると、そのフィールドを含む既存の行内で非表示になります。削除するフィールドは、最上位フィールド(つまり、表の列)にすることも、階層表スキーマ内で深くネストすることもできます。その結果、フィールドはパスを介して指定されます。パス構文は、問合せで使用されるもののサブセットであり、パス式の項で説明します。

add_regions_statement

リージョンの追加句を使用すると、マルチリージョンのOracle NoSQL Database環境で既存のMR表を新しいリージョンとリンクできます。この句は、MR表を新しいリージョンに拡張するときに使用されます。管理者ガイドユースケース2: マルチリージョン表の拡張を参照してください。

drop_regions_statement

リージョンの削除句を使用すると、マルチリージョンのOracle NoSQL Database環境で参加リージョンから既存のMR表を切断できます。この句は、MR表をより少ないリージョンに縮小するときに使用されます。管理者ガイドユースケース3: マルチリージョン表の縮小ユースケース3: マルチリージョン表の縮小を参照してください。

例5-12 表の変更

次の例では、other_namesに格納されている名前にミドル・ネームを追加します。

ALTER TABLE users (ADD otherNames[].middle STRING);

例5-13 表の変更

次の例では、表のTTLを5時間に変更します。

ALTER TABLE users USING TTL 5 days;