建立映射關係

更新時間:
Copy as MD

通過create table語句為已存在的表或者多元索引建立映射關係。建立映射關係時需要配置表的欄位名稱、欄位類型和主鍵資訊以及根據需要配置查詢資料時的執行引擎。

說明

關於 CREATE TABLE 語句的文法和欄位類型映射規則,請參見建立表的映射關係建立多元索引的映射關係

前提條件

參數

參數

說明

query

SQL 陳述式。填寫 CREATE TABLE 語句,列類型須與資料表中對應列的資料類型匹配。

樣本

說明

以下樣本以資料表的映射關係為例。如需建立多元索引的映射關係,將樣本中的 SQL 陳述式替換為對應的多元索引 CREATE TABLE 語句即可。

與關係型資料庫不同,Tablestore 的 CREATE TABLE 語句不會建立表,而是為已有的 NoSQL 資料表建立 SQL 映射,使其支援 SQL 查詢。

以下樣本使用語句create table test_table (pk varchar(1024), long_value bigint, double_value double, string_value mediumtext, bool_value bool, primary key(pk))建立 test_table 資料表的映射關係。

const params = {
  // CREATE TABLE 語句,為已有資料表建立 SQL 映射關係。
  // 列類型須與資料表中對應列的資料類型匹配,SQL 文法詳見 CREATE TABLE 文法說明。
  query: "create table test_table (pk varchar(1024), long_value bigint, double_value double, string_value mediumtext, bool_value bool, primary key(pk))",
}

client.sqlQuery(params, function (err, data) {
  if (err) {
    console.log('sqlQuery error:', err.toString());
  } else {
    console.log('sqlQuery success:', data);
  }
});

常見問題

建立映射關係時出現Table 'instancename.tablename' doesn't exist ?

  • 出現此問題的可能原因如下:

    建立映射關係時,指定的表不存在。

  • 解決方案:

    SQL中的Create Table語句只能為已存在的表或者多元索引建立映射關係。請確保要建立映射關係的表或者多元索引存在。

建立映射關係時出現Table 'instancename.tablename' already exist ?

  • 出現此問題的可能原因如下:

    該表已建立映射關係。

    • 使用者已手動為該表建立映射關係。

    • Table Store後台已自動建立該表的映射關係。在未建立資料表的映射關係的情況下,直接使用SQL語句(例如DESCRIBE、SELECT等)查詢資料,Table Store後台將自動建立該資料表的映射關係。自動建立的映射表僅包含資料表的主鍵列和預定義列,並且不支援更新屬性列。

  • 解決方案:

    您可以通過DESCRIBE語句查看現有映射表的表結構,如果不符合業務查詢要求,您可以更新映射表屬性列。系統自動建立的映射表無法更新屬性列,請在確保不影響業務的情況下刪除並重新建立映射表。

說明

更多關於SQL查詢功能的常見錯誤及其解決方案,請參見SQL查詢常見錯誤排查

相關文檔