ALTER TABLE文
ALTER TABLE文を使用して、表スキーマのスキーマ・フィールドを追加、削除または変更できます。表のデフォルトの存続時間の値を変更することもできます。
構文
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
]
[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が、このフィールドを含まない既存の行で、このフィールドの値として使用されます。追加するフィールドは、最上位フィールド(つまり、表の列)にすることも、階層表スキーマ内で深くネストすることもできます。その結果、フィールドはパスを介して指定されます。パス構文は、問合せで使用されるもののサブセットであり、パス式の項で説明します。
- 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);