既存のマッピングテーブルに属性列を追加または削除するには、ALTER TABLE 文を実行します。
詳細については、「マッピングテーブルの属性列の更新」をご参照ください。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
初期化済みの OTSClient インスタンス。詳細については、「OTSClient インスタンスの初期化」をご参照ください。
マッピングテーブル。詳細については、「マッピングテーブルの作成」をご参照ください。
注意事項
-
CREATE TABLE文を実行して作成されたマッピングテーブルに対してのみ、ALTER TABLE文を実行して属性列を更新できます。DESCRIBE文を実行して自動的に作成されたマッピングテーブルに対しては、ALTER TABLE文を実行して属性列を更新できません。 -
ALTER TABLE文を 1 回実行して、マッピングテーブルに追加または削除できる属性列は 1 つのみです。複数の属性列を追加または削除する場合は、ALTER TABLE文を複数回実行してください。 -
ALTER TABLE文を実行して更新できるのはマッピングテーブルのスキーマのみです。マッピングテーブルが作成された Tablestore テーブルのスキーマは更新されません。 -
ALTER TABLE文を実行して、マッピングテーブルのプライマリキー列を追加または削除することはできません。 -
ALTER TABLE文を実行すると、SQL エンジンが非同期でマッピングテーブルをリフレッシュします。リフレッシュの完了まで最大 30 秒かかります。リフレッシュ期間中は、すべての列を返す操作を実行しても、追加した列が返されない場合があります。
パラメーター
|
パラメーター |
説明 |
|
query |
SQL ステートメント。必要な機能に応じてこのパラメーターを設定します。 |
コード例
以下の両方の例では、SQLQueryRequest を使用して ALTER TABLE 文を client.SQLQuery 経由で送信しています。応答内のリクエスト ID により、操作が成功したことが確認できます。
-
属性列の追加
次のサンプルコードは、
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という名前のマッピングテーブルから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) } }
属性列を更新するには、不要になった列を削除し、要件に応じて新しい列を追加してください。
よくある質問
参照
-
SQL データクエリおよび計算を高速化するには、セカンダリインデックスまたは多次元インデックスを作成できます。詳細については、「インデックス選択ポリシー」および「コンピューテーションプッシュダウン」をご参照ください。
属性列を更新した後は、
SELECT文を実行してデータをクエリおよび分析できます。詳細については、「データのクエリ」をご参照ください。テーブルの詳細を表示するには、
DESCRIBE文を実行します。詳細については、「テーブル情報のクエリ」をご参照ください。不要になったマッピングテーブルを削除するには、
DROP MAPPING TABLE文を実行します。詳細については、「マッピングテーブルの削除」をご参照ください。テーブルのインデックス情報を表示するには、
SHOW INDEX文を実行します。詳細については、「テーブルのインデックス情報のクエリ」をご参照ください。現在のデータベースにあるマッピングテーブルの一覧を表示するには、
SHOW TABLES文を実行します。詳細については、「マッピングテーブル名のクエリ」をご参照ください。