全部產品
Search
文件中心

Tablestore:建立映射關係

更新時間:Jul 31, 2026

通過 Java SDK 為已有資料表或多元索引建立映射關係,以便通過 SQL 訪問資料。

前提條件

功能說明

調用 sqlQuery 方法執行 CREATE TABLE 語句,為已有資料表或多元索引建立映射關係。

SQLQueryResponse sqlQuery(SQLQueryRequest request)

為資料表建立映射關係時,映射表名稱必須與資料表名稱一致,欄位名稱不區分大小寫,欄位類型需要與資料表欄位類型對應。為多元索引建立映射關係時,映射表名稱可以自訂,並通過 ENGINEENGINE_ATTRIBUTE 指定資料表和多元索引。

有關 CREATE TABLE 語句的文法、欄位類型和參數說明,請參見DDL 操作

以下樣本為 example_table 資料表建立映射關係。該資料表包含一個字串主鍵列和四個屬性列。

String query = "CREATE TABLE example_table ("
        + "pk VARCHAR(1024), "
        + "long_value BIGINT, "
        + "double_value DOUBLE, "
        + "string_value MEDIUMTEXT, "
        + "bool_value BOOL, "
        + "PRIMARY KEY(pk))";
SQLQueryRequest request = new SQLQueryRequest(query);

client.sqlQuery(request);

參數說明

SQLQueryRequest 包含以下參數。

名稱

類型

說明

query(必選)

String

CREATE TABLE 語句,用於定義映射表名稱、欄位、主鍵和執行引擎。資料表映射和多元索引映射使用不同的文法。

情境樣本

為多元索引建立映射關係

建立多元索引的映射關係時,將 ENGINE 設定為 searchindex,並在 ENGINE_ATTRIBUTE 中指定資料表和多元索引名稱。以下樣本為 example_table 資料表的 example_index 多元索引建立名為 example_search_table 的映射關係。

String tableName = "example_table";
String indexName = "example_index";
String mappingTableName = "example_search_table";
String query = String.format(
        "CREATE TABLE %s (pk MEDIUMTEXT, long_value BIGINT, "
                + "double_value DOUBLE, string_value MEDIUMTEXT, "
                + "bool_value BOOL) ENGINE='searchindex' "
                + "ENGINE_ATTRIBUTE='{\"index_name\":\"%s\","
                + "\"table_name\":\"%s\"}'",
        mappingTableName, indexName, tableName);
SQLQueryRequest request = new SQLQueryRequest(query);

client.sqlQuery(request);

常見問題

建立映射關係時提示 Table 'instance.table' doesn't exist

原因:指定的資料表或多元索引不存在。CREATE TABLE 語句僅為已有資料表或多元索引建立映射關係,不會建立實際的資料表或多元索引。

解決方案:檢查資料表或多元索引名稱是否正確,並確保相應的資料表或多元索引已建立,然後重新執行 CREATE TABLE 語句。

建立映射關係時提示 Table 'instance.table' already exists

原因:映射關係已存在。該映射關係可能由 CREATE TABLE 語句建立,也可能在未顯式建立映射關係的情況下執行 DESCRIBESELECT 語句時自動建立。自動建立的映射關係僅包含資料表的主鍵列和預定義列。

解決方案

  • 如果只需避免重複建立報錯,請在 CREATE TABLE 語句中使用 IF NOT EXISTS

  • 如果需要調整映射關係的結構,請先使用 DESCRIBE 語句查看映射關係。通過 CREATE TABLE 語句建立的映射關係可以使用 ALTER TABLE 語句修改;自動建立的映射關係無法修改,需要評估業務影響後使用 DROP MAPPING TABLE 語句刪除,再重新建立。