CREATE TABLE 文を実行して、既存のテーブルまたは検索インデックスのマッピングテーブルを作成できます。マッピングテーブルを作成する際は、ビジネス要件に基づいて、フィールド名と型、プライマリキー情報、およびデータクエリに使用する実行エンジンを指定します。
詳細については、「テーブルのマッピングテーブルを作成する」および「検索インデックスのマッピングテーブルを作成する」をご参照ください。
使用方法
SQL クエリ機能は、PHP 用 Tablestore SDK V5.1.0 以降でサポートされています。 SQL クエリ機能を使用する場合は、サポートされているバージョンの PHP 用 Tablestore SDK がインストールされていることを確認してください。
PHP 用 Tablestore SDK のバージョン履歴については、「PHP 用 Tablestore SDK のバージョン履歴」をご参照ください。
前提条件
クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。
検索インデックスのマッピングテーブルを作成する場合は、最初に検索インデックスを作成する必要があります。
パラメーター
パラメーター | 説明 |
query | SQL 文。必要な機能に基づいてこのパラメーターを設定します。 |
例
このトピックでは、テーブルのマッピングテーブルを作成する方法について説明します。検索インデックスのマッピングテーブルを作成する場合は、サンプルコードの SQL 文を、検索インデックスのマッピングテーブルを作成するために使用する SQL 文に置き換えてください。
次の例は、CREATE TABLE `tableName` (`PK0` BIGINT(20),`PK1` VARCHAR(1024),`geo` MEDIUMTEXT,`boolean` BOOL,`array` MEDIUMTEXT,`double` DOUBLE,`text` MEDIUMTEXT,`keyword` MEDIUMTEXT,`nested` MEDIUMTEXT,`long` BIGINT(20),PRIMARY KEY(`PK0`,`PK1`)); 文を使用して、tableName テーブルのマッピングテーブルを作成する方法を示しています。
$request = array(
'query' => 'CREATE TABLE `tableName` (`PK0` BIGINT(20),`PK1` VARCHAR(1024),`geo` MEDIUMTEXT,`boolean` BOOL,`array` MEDIUMTEXT,`double` DOUBLE,`text` MEDIUMTEXT,`keyword` MEDIUMTEXT,`nested` MEDIUMTEXT,`long` BIGINT(20),PRIMARY KEY(`PK0`,`PK1`));', // tableName テーブルのマッピングテーブルを作成する SQL 文
);
$response = $otsClient->sqlQuery($request);
print json_encode($response, JSON_PRETTY_PRINT);FAQ
マッピングテーブルを作成しようとすると、「Table 'instancename.tablename' doesn't exist ?」というエラーメッセージが返される場合はどうすればよいですか?
考えられる原因
マッピングテーブルを作成しようとしているテーブルが存在しません。
解決策
SQL の CREATE TABLE 文を実行して、既存のテーブルまたは検索インデックスのマッピングテーブルのみを作成できます。マッピングテーブルを作成しようとしているテーブルまたは検索インデックスが存在することを確認してください。
マッピングテーブルを作成しようとすると、「Table 'instancename.tablename' already exist?」というエラーメッセージが返される場合はどうすればよいですか?
考えられる原因
テーブルのマッピングテーブルが作成されています。
ユーザーが手動でテーブルのマッピングテーブルを作成しました。
Tablestore がテーブルのマッピングテーブルを自動的に作成しました。データテーブルのマッピングテーブルを作成せずに、SQL 文(DESCRIBE、SELECT など)を直接使用してデータテーブルのデータをクエリすると、Tablestore はデータテーブルのマッピングテーブルを自動的に作成します。自動的に作成されたマッピングテーブルには、データテーブルのプライマリキー列と事前定義列のみが含まれます。マッピングテーブルの属性列を更新することはできません。
解決策
DESCRIBE文を実行して、マッピングテーブルのスキーマをクエリできます。スキーマがビジネス要件を満たしていない場合は、マッピングテーブルの属性列を更新できます。マッピングテーブルが Tablestore によって自動的に作成された場合、属性列を更新することはできません。この場合、マッピングテーブルを削除した後にビジネスに影響がないことが確実であれば、マッピングテーブルを削除して新しいマッピングテーブルを作成できます。
SQL クエリ機能の一般的なエラーと解決策については、「SQL クエリの一般的なエラーをトラブルシューティングするにはどうすればよいですか?」をご参照ください。
関連情報
マッピングテーブルを作成した後、マッピングテーブルの属性列の更新、マッピングテーブルの情報のクエリ、マッピングテーブルの名前のクエリ、マッピングテーブルのインデックス情報のクエリ、およびマッピングテーブルの削除を実行できます。詳細については、「マッピングテーブルの属性列を更新する」、「テーブルに関する情報をクエリする」、「マッピングテーブルの名前を一覧表示する」、「テーブルに関するインデックス情報をクエリする」、および「マッピングテーブルを削除する」をご参照ください。
SELECT 文を使用して、マッピングテーブルのデータのクエリと分析を実行できます。詳細については、「データをクエリする」をご参照ください。