CREATE TYPE
関連情報フィールドを1つ以上含んでいるカスタム・データ型をキースペースに作成します。
住所(番地、市区町村、都道府県、郵便番号)などの関連情報フィールドを1つ以上含んでいるカスタム・データ型をキースペースに作成します。
制約事項: UDTにカウンター・フィールドを含めることはできません。
構文
CREATE TYPE [ IF NOT EXISTS ] [keyspace_name].type_name (field_name cql_datatype [ , field_name cql_datatype ... ]) ;
構文規則 | 説明 |
---|---|
大文字 | リテラル・キーワード。 |
小文字 | リテラル以外。 |
イタリック体 |
変数値。ユーザー定義値と置き換えます。 |
[] |
任意。角かっこ( [] )で任意指定のコマンド引数を囲みます。角かっこは入力しないでください。 |
( ) |
グループ。丸かっこ(( ) )は、選択肢を含むグループを示します。丸かっこは入力しないでください。 |
| |
または。縦棒( | )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
'Literal string' |
単一引用符( ' )でCQL文内のリテラル文字を囲みます。大文字を維持するには、単一引用符を使用します。 |
{ key : value } |
マップ・コレクション。中かっこ( { } )でマップ・コレクションまたはキーと値のペアを囲みます。コロンでキーと値を区切ります。 |
<datatype1,datatype2> |
セット、リスト、マップ、またはタプル。山かっこ(< > )で、セット、リスト、マップまたはタプル内のデータ型を囲みます。データ型はコンマで区切ります。 |
cql_statement; |
CQL文の終了。セミコロン( ; )ですべてのCQL文を終了します。 |
[--] |
コマンドライン・オプションとコマンド引数は、2つのハイフン(-- )。この構文は、引数がコマンドライン・オプションと間違われる可能性がある場合に役立ちます。 |
' <schema> ... </schema> ' |
検索CQLのみ:単一引用符( ' )でXMLスキーマ宣言全体を囲みます。 |
@xml_entity='xml_entity_type' |
検索CQLのみ:スキーマ・ファイルおよびsolrConfigファイル内のXML要素を上書きするための実体とリテラル値を示します。 |
- IF NOT EXISTS
-
型がキースペースに既に存在する場合にエラーを抑制します。UDTスコープはキースペース全体です。
- type_name
-
型の一意の名前。CQLの型は予約されています。「型の名前」を参照してください。
- field_name cql_datatype
-
UDTに含まれているフィールドを、「
field_name cql_datatype, field_name, cql_datatype
」のようにコンマ区切りリストで定義します。
例
次の例では、個々のサイクリストに関する個人データで構成されるユーザー定義型cycling.basic_info
を作成します。
CREATE TYPE cycling.basic_info ( birthday timestamp, nationality text, height text, weight text );
UDTを定義した後、そのUDTを使用して、カラムを持つテーブルを作成できます。CQLのコレクション・カラムとその他のカラムでは、「ユーザー定義型の使用」に示すように、ユーザー定義型の使用がサポートされています。
次の例では、個々のサイクリストに関する個人データで構成されるユーザー定義型(UDT)
cycling.basic_info_withTTL
を作成します。これには、タイムスタンプとTime To Live(TTL)で設定されるnext_race
カラムjが含まれます。CREATE TYPE cycling.basic_info_expire IF NOT EXISTS ( birthday timestamp, nationality text, height text, weight text, next_race text ) ;タイムスタンプとTTLを使用してデータの行全体をテーブルに挿入するには、
INSERT
コマンドを使用して値を指定します。INSERT INTO cycling.basic_info_TTL_expire (id, lastname, basics) VALUES (e7ae5cf3-d358-4d99-b900-85902fda9bb0, 'FRAME', { birthday:'1993-06-18',nationality:'New Zealand',weight:'175',height:'72',next_race:'Amgen Tour of California' }) USING TIMESTAMP 100 AND TTL 10000;TTLを含む単一値を挿入するには、
UPDATE
コマンドを使用します。UPDATE cycling.basic_info_TTL_expire USING TTL 100 SET basics.next_race='Tour de France' WHERE id = e7ae5cf3-d358-4d99-b900-85902fda9bb0;
UDTの書き込み時間とTTL値を確認するには、
SELECT
コマンドでWRITETIMEとTTL関数を使用します。SELECT WRITETIME(basics), TTL(basics) FROM cycling.basic_info_TTL_expire WHERE id = e7ae5cf3-d358-4d99-b900-85902fda9bb0;
注: UDT
text
フィールドで単一引用符で囲まれた文字列は、クエリーとCOPY
コマンドでは二重引用符を使用して返されます。たとえば、文字列Single ' quote
をUDT text
フィールドに格納する場合、文字列はSingle '' Quote
として返されます。