ALTER TYPE

既存のユーザー定義型(UDT)を変更します。

既存のユーザー定義型(UDT)を変更します。

制約事項: プライマリ・キーまたはインデックス・カラムで使用されているUDTの変更はサポートされていません。

構文

ALTER TYPE field_name 
[ALTER field_name TYPE new_cql_datatype
| ADD (field_name cql_datatype[,...])
| RENAME field_name TO new_field_name]
表 1. 凡例
構文規則 説明
大文字 リテラル・キーワード。
小文字 リテラル以外。
イタリック体 変数値。ユーザー定義値と置き換えます。
[] 任意。角かっこ( [] )で任意指定のコマンド引数を囲みます。角かっこは入力しないでください。
( ) グループ。丸かっこ(( ))は、選択肢を含むグループを示します。丸かっこは入力しないでください。
| または。縦棒( | )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。
... 繰り返し可能。省略記号(...)は、構文要素を必要な回数だけ繰り返すことができることを示します。
'Literal string' 単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。
{ key : value } マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。
<datatype1,datatype2> セット、リスト、マップ、またはタプル。山かっこ(< >)で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型はコンマで区切ります。
cql_statement; CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。
[--] コマンドライン・オプションとコマンド引数は、2つのハイフン(--)で区切ります。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。
' <schema> ...</schema> ' 検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。
@xml_entity='xml_entity_type' 検索CQLのみ:スキーマ・ファイルおよびsolrConfigファイル内のXML要素を上書きするための実体とリテラル値を示します。
ALTER field_name TYPE new_cql_datatype
フィールドのデータ型を変更します。フィールド名と新しいcqlデータ型を指定します。
ADD (field_name cql_datatype[,...])
フィールド名、データ型の順にコンマ区切りリストで入力してフィールドを追加します。既存の行の値はNullに設定されます。
RENAME field_name TO new_field_name
フィールドの古い名前と新しい名前を入力します。
AND
between句を使用して、複数の変更を行います。

データ型の変更

フィールドの型を変更するには、そのフィールドが既に存在し、新しい型と互換性がある必要があります。

ヒント: テーブルの作成時に各カラムのデータ型を慎重に選択してください。
birthdayタイムスタンプをBLOBに変更します。
ALTER TABLE cycling.cyclist_alt_stats 
ALTER birthday TYPE  blob;

フィールドの追加

ユーザー定義型に新しいフィールドを追加するには、ALTER TYPEとADDキーワードを使用します。既存のUDTでは、フィールド値はNullです。

ALTER TYPE fullname ADD middlename text ;

フィールド名の変更

ユーザー定義型のフィールド名を変更するには、RENAME old_name TO new_name構文を使用します。ANDでディレクティブを区切って、複数のフィールドの名前を変更します。

cycling.fullname UDTのすべてのフィールド名の名前を削除します。
ALTER TYPE cycling.fullname 
RENAME middlename TO middle 
AND lastname to last 
AND firstname to first;
describeを使用して変更を確認します。
DESC TYPE cycling.fullname
新しいフィールド名が説明に表示されます。
CREATE TYPE cycling.fullname (
    first text,
    last text,
    middle text
);