ユーザー定義型(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>);  
  • ユーザー定義型は、別のカラム型内にネストすることができます。この例では、UDTlist内にネストしています。
    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>> );