テーブルの作成
CQLテーブルの作成方法。
WITH
句とキーワード引数を追加します。「table_options」を参照してください。cqlshを使用したスキーマの作成
cqlsh
を使用してテーブル・スキーマを作成します。DataStax Enterpriseは、動的スキーマの生成をサポートしていません。複数のクライアントがテーブルを同時に生成しようとした場合は、衝突が発生する場合があります。衝突から復旧するには、「スキーマ衝突の修正」の手順に従ってください。
プライマリ・キー
プライマリ・キーは、格納されているデータの場所と順序を特定します。プライマリ・キーはテーブルの作成時に定義され、変更することはできません。プライマリ・キーを変更する必要がある場合は、新しいテーブル・スキーマを作成し、既存のデータを新しいテーブルに書き込みます。作成後のテーブルの変更の詳細については、「ALTER TABLE」を参照してください。
テーブルのプライマリ・キーの定義は非常に重要です。プライマリ・キーで定義するカラムを選択する前に、テーブル内のデータの挿入と取得の方法を慎重にモデル化してください。パーティションのサイズ、パーティション内のデータの順序、クラスターのノード間でのパーティションの分散など、テーブルのプライマリ・キーを選択するときは、これらすべてを考慮する必要があります。
テーブルの特性
- テーブルを含むキースペースを指定するには、keyspace_name.table_nameのようにキースペース名の後にピリオド、次にテーブル名を入力します。これで、現在のセッション(たとえばUSEコマンドのセッション)のキースペースとは異なるキースペースに新しいテーブルを作成できます。
- 現在のキースペースにテーブルを作成する場合は、単に新しいテーブル名を使用します。
カラムの特性
CREATE TABLE cycling.cyclist_alt_stats ( id UUID PRIMARY KEY, lastname text, birthday timestamp, nationality text, weight text, height text );
CREATE TABLE cycling.whimsey ( id UUID PRIMARY KEY, lastname text, cyclist_teams set<text>, events list<text>, teams map<int,text> );
コレクション型をネストすることはできません。コレクションにはfrozenデータ型を含めることができます。例と使用法については、次を参照してください。 コレクション型のフリーズCREATE TABLE cycling.route (race_id int, race_name text, point_id int, lat_long tuple<text, tuple<float,float>>, PRIMARY KEY (race_id, point_id));
「タプル型」を参照してください。CREATE TYPEを使用して、ユーザー定義型(UDT)を複数のフィールドのデータ型として作成します。複数のテーブル定義に使用できるUDTを作成するようにしてください。ユーザー定義カラム型(UDT)にはfrozenキーワードが必要です。 ユーザー定義の型は、それを定義したキースペース内で有効です。その範囲外のキースペースから型にアクセスするには、ドット表記を使用します。キースペース名の後にピリオドを付け、その後に型の名前を記述します。たとえば、test.myType
のtest
はキースペースの名前で、myType
は型名です。データベースは、指定されたキースペース内の型にアクセスしますが、現在のキースペースは変更しません。キースペースを指定しない場合、データベースは現在のキースペース内の型にアクセスします。 例と使用法については、「ユーザー定義型の使用」を参照してください。
カウンターは、インクリメントで変化する数値の格納に使用される特別なカラムです。カウンターは、counterデータ型カラムを含む専用のテーブルでのみ使用できます。例と使用法については、「カウンターの使用」を参照してください。