CREATE TABLE ステートメントを実行して、既存のテーブルまたはサーチインデックスのマッピングテーブルを作成できます。マッピングテーブルを作成する際には、テーブル内のフィールドの名前と型、テーブルのプライマリキー情報、ビジネス要件に基づいたデータクエリのエンジンを指定します。 このトピックでは、既存のテーブルのマッピングテーブルを作成する方法について説明します。
サーチインデックスのマッピングテーブルを作成する方法については、サーチインデックスのマッピングテーブルを作成するを参照してください。
構文
CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type [NOT NULL | NULL],...
// プライマリキー
| PRIMARY KEY(key_part[,key_part])
)
ENGINE='tablestore',
ENGINE_ATTRIBUTE='{"consistency": consistency [,"allow_inaccurate_aggregation": allow_inaccurate_aggregation]}';
テーブルにプライマリキー列が1つしかない場合は、次の構文を使用して既存のテーブルのマッピングテーブルを作成できます。
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type PRIMARY KEY,column_name data_type [NOT NULL | NULL],...
)
ENGINE='tablestore',
ENGINE_ATTRIBUTE='{"consistency": consistency [,"allow_inaccurate_aggregation": allow_inaccurate_aggregation]}';
パラメーター
パラメーター | 必須 | 説明 |
IF NOT EXISTS | いいえ | テーブルが存在するかどうかに関係なく、成功レスポンスが返されるように指定します。 IF NOT EXISTS を指定しない場合、テーブルが存在しない場合にのみ成功レスポンスが返されます。 |
table_name | はい | テーブルを識別するために使用されるテーブルの名前。 SQL のテーブル名は、Tablestore のテーブル名と同じである必要があります。 |
column_name | はい | 列の名前。 SQL の列名は、Tablestore テーブルの列名と同等である必要があります。たとえば、Tablestore テーブルの列名が Aa の場合、SQL の列名は Aa、AA、aA、または aa である必要があります。 |
data_type | はい | 列のデータ型(BIGINT、DOUBLE、BOOL など)。 SQL の列のデータ型は、Tablestore テーブルの列のデータ型と一致する必要があります。データ型マッピングの詳細については、SQL でのデータ型マッピングを参照してください。 |
NOT NULL | NULL | いいえ | 列の値を NULL にできるかどうかを指定します。有効な値:
|
key_part | はい | プライマリキー列の名前。複数のプライマリキー列を指定できます。複数のプライマリキー列はコンマ (,) で区切ります。 プライマリキー列の名前は、列名に含まれている必要があります。 |
ENGINE | いいえ | マッピングテーブルを使用してデータをクエリするときに使用される実行エンジン。デフォルト値: tablestore。有効な値:
|
ENGINE_ATTRIBUTE | いいえ | 実行エンジンの属性。このパラメーターの値は JSON 形式で、次の項目が含まれます。
|
例
例 1
次のサンプルコードは、exampletable1 という名前のマッピングテーブルを作成する方法の例を示しています。テーブルには、id プライマリキー列と、colvalue および content 属性列が含まれています。 id プライマリキー列と colvalue 属性列は BIGINT 型で、content 属性列は MEDIUMTEXT 型です。
CREATE TABLE exampletable1 (id BIGINT(20) PRIMARY KEY, colvalue BIGINT(20), content MEDIUMTEXT);
例 2
次のサンプルコードは、exampletable2 という名前のマッピングテーブルを作成する方法の例を示しています。テーブルには、id および colvalue プライマリキー列と、content 属性列が含まれています。 id プライマリキー列は BIGINT 型、colvalue プライマリキー列は VARCHAR 型、content 属性列は MEDIUMTEXT 型です。テーブルで実行されるクエリの結果は、厳密な整合性モードである必要があります。
CREATE TABLE exampletable2 (id BIGINT(20), colvalue VARCHAR(1024), content MEDIUMTEXT, PRIMARY KEY(colvalue, id)) ENGINE_ATTRIBUTE='{"consistency": "strong"}';
FAQ
関連情報
SQL ステートメントを実行してデータクエリと計算を高速化する場合、セカンダリインデックスまたはサーチインデックスを作成できます。詳細については、インデックス選択ポリシーと計算プッシュダウンを参照してください。
SELECT ステートメントを実行して、マッピングテーブルを作成したテーブルのデータをクエリおよび分析できます。詳細については、データのクエリを参照してください。
サーチインデックスを使用してデータをクエリおよび分析する場合、
CREATE TABLE
ステートメントを実行して、サーチインデックスのマッピングテーブルを作成できます。詳細については、サーチインデックスのマッピングテーブルを作成するを参照してください。データテーブルの属性列が変更された場合、
ALTER TABLE
ステートメントを実行して、データテーブル用に作成されたマッピングテーブルを変更できます。詳細については、マッピングテーブルの属性列を更新するを参照してください。テーブルの説明をクエリする場合、
DESCRIBE
ステートメントを実行できます。詳細については、テーブルに関する情報をクエリするを参照してください。マッピングテーブルが不要になった場合、
DROP MAPPING TABLE
ステートメントを実行してマッピングテーブルを削除できます。詳細については、マッピングテーブルを削除するを参照してください。テーブルのインデックス情報を表示する場合、
SHOW INDEX
ステートメントを実行できます。詳細については、テーブルのインデックス情報をクエリするを参照してください。現在のデータベース内のマッピングテーブルの名前を一覧表示する場合、
SHOW TABLES
ステートメントを実行できます。詳細については、テーブル名を一覧表示するを参照してください。