全部產品
Search
文件中心

Tablestore:建立映射關係

更新時間:May 23, 2025

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

說明

關於create table語句的更多資訊,請參見建立表的映射關係建立多元索引的映射關係

注意事項

Table StorePHP SDK從5.1.0版本開始支援SQL查詢功能,使用SQL查詢功能時,請確保安裝了正確的PHP SDK版本。

關於PHP SDK歷史迭代版本的更多資訊,請參見PHP SDK歷史迭代版本

前提條件

參數

參數

說明

query

SQL語句,請根據所需功能進行設定。

樣本

說明

本文以建立表的映射關係為例介紹。如果要建立多元索引的映射關係,您只需將樣本中的SQL語句替換為建立多元索引映射關係的SQL語句即可。

以下樣本用於使用CREATE TABLE `tableName` (`PK0` BIGINT(20),`PK1` VARCHAR(1024),`geo` MEDIUMTEXT,`boolean` BOOL,`array` MEDIUMTEXT,`double` DOUBLE,`text` MEDIUMTEXT,`keyword` MEDIUMTEXT,`nested` MEDIUMTEXT,`long` BIGINT(20),PRIMARY KEY(`PK0`,`PK1`));語句建立tableName表的映射關係。

$request = array(
    'query' => 'CREATE TABLE `tableName` (`PK0` BIGINT(20),`PK1` VARCHAR(1024),`geo` MEDIUMTEXT,`boolean` BOOL,`array` MEDIUMTEXT,`double` DOUBLE,`text` MEDIUMTEXT,`keyword` MEDIUMTEXT,`nested` MEDIUMTEXT,`long` BIGINT(20),PRIMARY KEY(`PK0`,`PK1`));',
);
$response = $otsClient->sqlQuery($request);
print json_encode($response, JSON_PRETTY_PRINT);

常見問題

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

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

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

  • 解決方案:

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

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

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

    該表已建立映射關係。

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

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

  • 解決方案:

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

說明

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

相關文檔