ユーザー定義型(UDT)の作成

ユーザー定義型(UDT)を使用して、複数のデータ・フィールドを1つのカラムに関連付けることができます。

ユーザー定義型(UDT)は、それぞれ名前と型が指定された複数のデータ・フィールドを1つのカラムに関連付けることができます。UDTの作成に使用するフィールドには、コレクションや他の既存のUDTを含む、すべての有効なデータ型を指定できます。UDTの作成後、そのUDTを使用してテーブル・カラムを定義できます。

手順

  • cyclingキースペースを使用します。
    USE cycling;
  • ユーザー定義型basic_infoを作成します。
    CREATE TYPE cycling.basic_info (
      birthday timestamp,
      nationality text,
      weight text,
      height text
    );
  • サイクリストのデータをbasic_info型のカラムに格納するテーブルを作成します。ユーザー定義型カラムの定義でデータ型キーワードを使用します。

    非コレクション・フィールドのみを含むUDTにはfrozenキーワードは必要ありません。

    frozenキーワードを使用した場合は、ユーザー定義型値の一部を更新できません。値全体を上書きしなければなりません。データベースでは、ユーザー定義型であるfrozenの値はBLOBとして扱われます。

    CREATE TABLE cycling.cyclist_stats (
      id uuid PRIMARY KEY,
      lastname text,
      basics FROZEN<basic_info>
    );  
  • ユーザー定義型は、別のカラム型内にネストすることができます。以下の例では、racesという名前のfrozenリスト内にUDTをネストしています。
    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>>
    );