CREATE TABLE ステートメントを実行して、既存のテーブルまたは検索インデックスのマッピングテーブルを作成できます。 マッピングテーブルを作成するときは、ビジネス要件に基づいて、フィールド名と型、プライマリキー情報、およびデータクエリに使用する実行エンジンを指定します。
CREATE TABLE ステートメントの構文、フィールド型、およびパラメーターの詳細については、「DDL 操作」をご参照ください。
注意事項
SQL クエリは、Tablestore SDK for .NET V5.0.0 以降でサポートされています。サポートされている SDK バージョンがインストールされていることを確認してください。
詳細については、「Tablestore SDK for .NET のバージョン履歴」をご参照ください。
前提条件
クライアントが初期化されていること。 詳細については、「Tablestore クライアントの初期化」をご参照ください。
検索インデックスのマッピングテーブルを作成する場合は、まず検索インデックスを作成する必要があります。
パラメーター
パラメーター | 説明 |
query | SQL ステートメントです。 必要な機能に基づいてこのパラメーターを設定します。 |
例
このトピックでは、テーブルのマッピングテーブルを作成する方法について説明します。 検索インデックスのマッピングテーブルを作成する場合は、サンプルコードの SQL ステートメントを、検索インデックスのマッピングテーブル作成用の SQL ステートメントに置き換えてください。
次の例では、CREATE TABLE `test_table` (`pk0` VARCHAR(1024), `pk1` BIGINT(20), `col0` MEDIUMTEXT, `col1` BIGINT(20), `col2` DOUBLE, `col3` BOOL, `col4` MEDIUMBLOB, `date_col` MEDIUMTEXT, `geo_col` MEDIUMTEXT, `col0_v1` MEDIUMTEXT, `col0_v2` MEDIUMTEXT, PRIMARY KEY(`pk0`,`pk1`)); ステートメントを使用して、test_table テーブルのマッピングテーブルを作成する方法を示します。
/// <summary>
/// データテーブルのマッピングテーブルを作成します。
/// </summary>
/// <param name="otsClient"></param>
public static void CreateMappingTable(OTSClient otsClient)
{
string sqlCommand = @"CREATE TABLE `test_table` (
`pk0` VARCHAR(1024),
`pk1` BIGINT(20),
`col0` MEDIUMTEXT,
`col1` BIGINT(20),
`col2` DOUBLE,
`col3` BOOL,
`col4` MEDIUMBLOB,
`date_col` MEDIUMTEXT,
`geo_col` MEDIUMTEXT,
`col0_v1` MEDIUMTEXT,
`col0_v2` MEDIUMTEXT,
PRIMARY KEY(`pk0`,`pk1`)
);";
SQLQueryRequest sqlQueryRequest = new SQLQueryRequest(sqlCommand);
SQLQueryResponse sqlQueryResponse = otsClient.SQLQuery(sqlQueryRequest);
}よくある質問
マッピングテーブルの作成時に「Table 'instancename.tablename' doesn't exist ?」というエラーメッセージが返された場合はどうすればよいですか。
考えられる原因
マッピングテーブルの作成対象のテーブルが存在しません。
解決策
SQL の CREATE TABLE ステートメントを実行してマッピングテーブルを作成できるのは、既存のテーブルまたは検索インデックスに対してのみです。 マッピングテーブルの作成対象のテーブルまたは検索インデックスが存在することを確認してください。
マッピングテーブルの作成時に「Table 'instancename.tablename' already exist?」というエラーメッセージが返された場合はどうすればよいですか。
考えられる原因
テーブルにはマッピングテーブルが作成されています。
ユーザーが手動でテーブルのマッピングテーブルを作成しました。
Tablestore が自動的にテーブルのマッピングテーブルを作成しました。 データテーブルのマッピングテーブルを作成せずに、SQL ステートメント (DESCRIBE、SELECT など) を直接使用してデータテーブル内のデータを照会すると、Tablestore はデータテーブルのマッピングテーブルを自動的に作成します。 自動作成されたマッピングテーブルには、データテーブルのプライマリキー列と事前定義列のみが含まれ、その属性列は更新できません。
解決策
DESCRIBEステートメントを実行して、マッピングテーブルのスキーマを照会できます。 スキーマがビジネス要件を満たしていない場合は、マッピングテーブルの属性列を更新できます。 マッピングテーブルが Tablestore によって自動的に作成された場合、属性列を更新することはできません。 この場合、マッピングテーブルを削除してもビジネスに影響がないことを確認した上で、マッピングテーブルを削除して新しいマッピングテーブルを作成できます。
一般的な SQL クエリのエラーとその解決策については、「一般的な SQL クエリのエラーのトラブルシューティング」をご参照ください。
関連ドキュメント
マッピングテーブルを作成した後、マッピングテーブルの属性列の更新、マッピングテーブルの情報の照会、マッピングテーブル名の照会、マッピングテーブルのインデックス情報の照会、およびマッピングテーブルの削除ができます。 詳細については、「マッピングテーブルの属性列の更新」、「テーブルに関する情報の照会」、「マッピングテーブル名の照会」、「テーブルのインデックス情報の照会」、および「マッピングテーブルの削除」をご参照ください。
SELECT ステートメントを使用して、マッピングテーブル内のデータを照会および分析できます。 詳細については、「データの照会」をご参照ください。