CREATE TYPE

関連情報フィールドを1つ以上含んでいるカスタム・データ型をキースペースに作成します。

住所(番地、市区町村、都道府県、郵便番号)などの関連情報フィールドを1つ以上含んでいるカスタム・データ型をキースペースに作成します。
制約事項: UDTにカウンター・フィールドを含めることはできません。

構文

CREATE TYPE [ IF NOT EXISTS ] [keyspace_name].type_name
  (field_name cql_datatype [ , field_name cql_datatype ... ]) ;
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要素を上書きするための実体とリテラル値を示します。
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として返されます。