CREATE TYPE
Cassandra 2.1以降でユーザー定義型を作成します。
Cassandra 2.1以降でユーザー定義型を作成します。
構文
CREATE TYPE IF NOT EXISTS keyspace.type_name ( field, field, ...)
type_nameは、予約されている型の名前以外の型識別子です。
fieldは、以下のとおりです。
field_name type
field_nameはそのフィールドに対する任意の識別子です。
typeはカウンター型以外の、CQLコレクション型または非コレクション型です。
構文の凡例
- 大文字はリテラルを意味する
- 小文字は、リテラルでないことを意味する
- イタリック体は指定が任意であることを意味する
- パイプ(|)記号はORまたはAND/ORを意味する
- 省略記号(...)は繰り返し可能を意味する
- 範囲記号「(」および「)」はリテラルではなく、範囲を示す
この構文には、CQL文の終了となるセミコロンは含まれていません。
説明
ユーザー定義型は、型を持つ1つ以上のフィールドです。ユーザー定義型を使用すると、住所情報(番地、都市、郵便番号)など互いに関連する情報を表す複数のフィールドの処理が容易になります。すでに存在している型を作成しようとすると、IF NOT EXISTSオプションを使用していない限りエラーが返されます。このオプションを使用すると、すでにその型が存在していれば、この文は何もしません。
ユーザー定義型を作成するには、CREATE TYPEコマンドを使用して、その後に型の名前とフィールドのリストを、コンマで区切って丸かっこで囲んで指定します。
- byte
- smallint
- complex
- enum
- date
- interval
- macaddr
- bitstring
cqlshの起動時のキースペースであるシステム・キースペース内にいる場合は、型に対するキースペースを指定する必要があります。ドット表記を使用して、その型のキースペースを指定できます。キースペース名の後にピリオドを付け、その後に型の名前を記述します。Cassandraは、指定されたキースペース内にその型を作成しますが、現在のキースペースは変更しません。キースペースを別途指定しなかった場合、Cassandraは現在のキースペース内にその型を作成します。
例
この例では、住所や電話番号の情報で構成されるaddressというユーザー定義型を作成します。
CREATE TYPE address ( street text, city text, zip_code int, phones set<text> )
address型を定義した後、その型のカラムを持つテーブルを作成できます。CQLのコレクション・カラムとその他のカラムでは、「ユーザー定義型の使用」に示すように、ユーザー定義型の使用がサポートされています。