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 列を追加する方法の例を示しています。
func alterTableAddColumn(client *tablestore.TableStoreClient) { // SQL リクエストを作成します。 request := &tablestore.SQLQueryRequest{Query: "alter table exampletable add column colvalue bigint"} // SQL リクエストへのレスポンスを取得します。 res, err := client.SQLQuery(request) if err != nil { fmt.Println(err.Error()) } else { fmt.Println(res.ResponseInfo.RequestId) } }マッピングテーブルから属性列を削除する
次のサンプルコードは、exampletable という名前のマッピングテーブルから BIGINT 型の colvalue 列を削除する方法の例を示しています。
func alterTableDropColumn(client *tablestore.TableStoreClient) { // SQL リクエストを作成します。 request := &tablestore.SQLQueryRequest{Query: "alter table exampletable drop column colvalue"} // SQL リクエストへのレスポンスを取得します。 res, err := client.SQLQuery(request) if err != nil { fmt.Println(err.Error()) } else { fmt.Println(res.ResponseInfo.RequestId) } }
マッピングテーブルの属性列を更新する場合は、不要になった属性列を削除してから、ビジネス要件に基づいて属性列を追加できます。
FAQ
参照
SQL ステートメントを実行してデータクエリと計算を高速化する場合、セカンダリインデックスまたは検索インデックスを作成できます。詳細については、インデックス選択ポリシーと計算プッシュダウンをご参照ください。
マッピングテーブルの属性列を更新した後、
SELECTステートメントを実行して、マッピングテーブルを使用してデータのクエリと分析を実行できます。詳細については、データのクエリをご参照ください。テーブルの説明をクエリする場合は、
DESCRIBEステートメントを実行できます。詳細については、テーブルに関する情報のクエリをご参照ください。テーブルまたは検索インデックス用に作成されたマッピングテーブルが不要になった場合は、
DROP MAPPING TABLEステートメントを実行してマッピングテーブルを削除できます。詳細については、マッピングテーブルの削除をご参照ください。テーブルのインデックス情報を表示する場合は、
SHOW INDEXステートメントを実行できます。詳細については、テーブルのインデックス情報のクエリをご参照ください。現在のデータベース内のマッピングテーブルの名前をクエリする場合は、
SHOW TABLESステートメントを実行できます。詳細については、マッピングテーブルの名前のクエリをご参照ください。