show index 文を実行して、テーブルのインデックス名、インデックスフィールド、およびインデックスタイプを取得します。
詳細については、「テーブルのインデックス情報のクエリ」をご参照ください。
前提条件
作業を開始する前に、次の要件を満たしていることを確認してください。
Tablestore クライアントが初期化済みであること。詳細については、「Tablestore クライアントの初期化」をご参照ください。
注意事項
SQL クエリ機能を使用するには、Tablestore SDK for .NET V5.0.0 以降が必要です。
詳細については、「Tablestore SDK for .NET のバージョン履歴」をご参照ください。
パラメーター
|
パラメーター |
説明 |
|
query |
実行する SQL ステートメントです。 |
コード例
次の例では、test_table という名前のテーブルに対して show index in test_table を実行します。このコードは SQL クエリを送信し、結果セットのスキーマを読み取った後、各行を繰り返し処理してインデックスフィールドを出力します。
/// <summary>
/// テーブルのインデックス情報をクエリします。
/// </summary>
/// <param name="otsClient"></param>
public static void DescribeIndex(OTSClient otsClient)
{
SQLQueryRequest sqlQueryRequest = new SQLQueryRequest("show index in test_table");
SQLQueryResponse sqlQueryResponse = otsClient.SQLQuery(sqlQueryRequest);
SQLTableMeta sqlTableMeta = sqlQueryResponse.GetSQLResultSet().GetSQLTableMeta();
Console.WriteLine(JsonConvert.SerializeObject(sqlTableMeta.GetSchema()));
ISQLResultSet resultSet = sqlQueryResponse.GetSQLResultSet();
while (resultSet.HasNext())
{
ISQLRow row = resultSet.Next();
Console.WriteLine(row.GetString("Table") + " " + row.GetLong("Non_unique") + " " + row.GetString("Key_name") + " " +
row.GetLong("Seq_in_index") + " " + row.GetString("Column_name") + " " + row.GetString("Index_type"));
}
}
レスポンスフィールド
結果セットは、各インデックスエントリについて以下のフィールドを返します。
|
フィールド |
型 |
説明 |
|
Table |
String |
テーブル名です。 |
|
Non_unique |
Long |
インデックスが重複値を許可するかどうかを示します。 |
|
Key_name |
String |
インデックス名です。 |
|
Seq_in_index |
Long |
インデックス内のカラム位置を示します( |
|
Column_name |
String |
インデックス対象のカラム名です。 |
|
Index_type |
String |
インデックスタイプです。 |
関連ドキュメント
SQL クエリ機能でデータをクエリする際に特定の多次元インデックスを使用するには、
CREATE TABLE文を実行して、その多次元インデックスのマッピングテーブルを作成します。詳細については、「多次元インデックスのマッピングテーブルの作成」をご参照ください。SQL ステートメントを使用してインデックスフィールドに基づくデータのクエリを行う方法については、「データのクエリ」をご参照ください。