ALTER TABLE ステートメントを実行して、既存のマッピングテーブルに属性列を追加または削除できます。
詳細については、マッピングテーブルの属性列を更新する を参照してください。
前提条件
OTSClient インスタンスが初期化されていること。詳細については、OTSClient インスタンスを初期化する を参照してください。
マッピングテーブルが作成されていること。詳細については、マッピングテーブルを作成する を参照してください。
使用方法
- ALTER TABLE ステートメントを実行して、マッピングテーブルのスキーマを更新できます。マッピングテーブルが作成された Tablestore テーブルのスキーマは更新されません。
- マッピングテーブルの主キー列を追加または削除することはできません。
- ALTER TABLE ステートメントを実行した後、SQL エンジンはマッピングテーブルを非同期的に更新します。更新には最大 30 秒かかります。更新期間中は、すべての列を返すはずの操作を実行しても、追加した列が返されない場合があります。
- CREATE TABLE ステートメントを実行して作成されたマッピングテーブルでのみ、ALTER TABLE ステートメントを実行して属性列を更新できます。DESCRIBE ステートメントを実行してテーブルに対して自動的に作成されたマッピングテーブルでは、ALTER TABLE ステートメントを実行して属性列を更新することはできません。
- ALTER TABLE ステートメントを実行することで、マッピングテーブルの属性列を 1 つだけ追加または削除できます。マッピングテーブルの複数の属性列を追加または削除する場合は、ALTER TABLE ステートメントを複数回実行できます。
パラメーター
パラメーター | 説明 |
query | SQL ステートメント。必要な機能に基づいてパラメーターを設定します。 |
例
マッピングテーブルに属性列を追加する
次のサンプルコードは、exampletable という名前のマッピングテーブルに BIGINT 型の colvalue 列を追加する方法の例を示しています。
$request = array( 'query' => 'alter table exampletable add column colvalue bigint', ); $response = $otsClient->sqlQuery($request); print json_encode($response, JSON_PRETTY_PRINT);
マッピングテーブルから属性列を削除する
次のサンプルコードは、exampletable という名前のマッピングテーブルから BIGINT 型の colvalue 列を削除する方法の例を示しています。
$request = array( 'query' => 'alter table exampletable drop column colvalue', ); $response = $otsClient->sqlQuery($request); print json_encode($response, JSON_PRETTY_PRINT);
マッピングテーブルの属性列を更新する場合は、不要になった属性列を削除してから、ビジネス要件に基づいて属性列を追加できます。
FAQ
参考資料
SQL ステートメントを実行してデータクエリと計算を高速化する場合、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、インデックス選択ポリシー および 計算プッシュダウン を参照してください。
マッピングテーブルの属性列を更新した後、
SELECT
ステートメントを実行して、マッピングテーブルを使用してデータのクエリと分析を実行できます。詳細については、データのクエリ を参照してください。テーブルの説明をクエリする場合は、
DESCRIBE
ステートメントを実行できます。詳細については、テーブルに関する情報のクエリ を参照してください。テーブルまたは検索インデックス用に作成されたマッピングテーブルが不要になった場合は、
DROP MAPPING TABLE
ステートメントを実行してマッピングテーブルを削除できます。詳細については、マッピングテーブルの削除 を参照してください。テーブルのインデックス情報を表示する場合は、
SHOW INDEX
ステートメントを実行できます。詳細については、テーブルのインデックス情報のクエリ を参照してください。現在のデータベース内のマッピングテーブルの名前をクエリする場合は、
SHOW TABLES
ステートメントを実行できます。詳細については、テーブル名の一覧表示 を参照してください。