ユーザー定義型(UDT)の作成
ユーザー定義型(UDT)を使用して、複数のデータ・フィールドを1つのカラムに関連付けることができます。
ユーザー定義型(UDT)は、それぞれ名前と型が指定された複数のデータ・フィールドを1つのカラムに関連付けることができます。UDTの作成に使用するフィールドには、コレクションや他の既存のUDTを含む、すべての有効なデータ型を指定できます。作成したUDTは、テーブル内のカラムを定義するために使用できます。
手順
-
cyclingキースペースを使用します。
cqlsh> USE cycling;
-
ユーザー定義型basic_infoを作成します。
cqlsh> CREATE TYPE cycling.basic_info ( birthday timestamp, nationality text, weight text, height text );
-
サイクリストのデータをbasic_info型のカラムに格納するテーブルを作成します。ユーザー定義型カラムの定義でfrozenキーワードを使用します。DataStax Enterprise 5.0以降では、非コレクション・フィールドのみを含むUDTにはfrozenキーワードは必要ありません。
frozenキーワードを使用した場合は、ユーザー定義型値の一部を更新できません。値全体を上書きしなければなりません。データベースでは、ユーザー定義型であるfrozenの値はBLOBとして扱われます。
cqlsh> CREATE TABLE cycling.cyclist_stats ( id uuid PRIMARY KEY, lastname text, basics FROZEN<basic_info>);
-
ユーザー定義型は、別のカラム型内にネストすることができます。この例では、UDTをlist内にネストしています。
CREATE TYPE cycling.race (race_title text, race_date timestamp, race_time text); CREATE TABLE cycling.cyclist_races ( id UUID PRIMARY KEY, lastname text, firstname text, races list<FROZEN <race>> );