show index 文を実行して、テーブルのインデックスメタデータ(インデックス名、フィールド、タイプなど)を取得します。
show index 文の完全なリファレンスについては、「テーブルのインデックス情報をクエリする」をご参照ください。
前提条件
Tablestore クライアントが初期化済みである必要があります。詳細については、「Tablestore クライアントの初期化」をご参照ください。
注意事項
SQL クエリ機能は、Tablestore SDK for Java V5.13.0 以降でサポートされています。SQL クエリ機能を使用する際は、サポート対象バージョンの Tablestore SDK for Java がインストールされていることを確認してください。
パラメーター
|
パラメーター |
説明 |
|
query |
SQL ステートメントです。必要な機能に応じてこのパラメーターを設定します。 |
例
次の例では、show index in test_table を実行して、test_table のすべてのインデックスメタデータを取得します。結果セットにはスキーマと、インデックスフィールドごとの 1 行が含まれます。
private static void showIndexDemo(SyncClient client) {
// SQL リクエストを送信
SQLQueryRequest request = new SQLQueryRequest("show index in test_table");
SQLQueryResponse response = client.sqlQuery(request);
// 結果セットのスキーマを出力
SQLTableMeta tableMeta = response.getSQLResultSet().getSQLTableMeta();
System.out.println("response table schema: " + tableMeta.getSchema());
// 結果セットの各行を反復処理
System.out.println("response resultset:");
SQLResultSet resultSet = response.getSQLResultSet();
while (resultSet.hasNext()) {
SQLRow row = resultSet.next();
System.out.println(row.getString("Table") + ", " + row.getLong("Non_unique") + ", " +
row.getString("Key_name") + ", " + row.getLong("Seq_in_index") + ", " +
row.getString("Column_name") + ", " + row.getString("Index_type") );
}
}
応答例:
response table schema: [Table:STRING, Non_unique:INTEGER, Key_name:STRING, Seq_in_index:INTEGER, Column_name:STRING, Is_defined_column:STRING, Collation:STRING, Cardinality:INTEGER, Sub_part:INTEGER, Packed:STRING, Null:STRING, Index_type:STRING, Comment:STRING, Index_comment:STRING, Visible:STRING, Expression:STRING]
response resultset:
test_table, 0, PRIMARY, 1, pk,
test_table, 1, test_table_index, 1, pk, SearchIndex
test_table, 1, test_table_index, 2, bool_value, SearchIndex
test_table, 1, test_table_index, 3, double_value, SearchIndex
test_table, 1, test_table_index, 4, long_value, SearchIndex
test_table, 1, test_table_index, 5, string_value, SearchIndex
スキーマ行には、show index によって返されるすべてのカラムがリストされます。その後の各行は、インデックス内の 1 つのフィールドを表します。この例では、test_table に主キーインデックス(PRIMARY)と、5 つのフィールドをカバーする多次元インデックス(test_table_index)が存在します。
参照
SQL クエリで特定の検索インデックスを使用するには、
CREATE TABLE文でその検索インデックスのマッピングテーブルを作成します。詳細については、「検索インデックスのマッピングテーブルを作成する」をご参照ください。SQL ステートメントを使用してインデックスフィールドに基づくデータのクエリを行う方法については、「データのクエリ」をご参照ください。