全部產品
Search
文件中心

Tablestore:建立映射關係

更新時間:Sep 30, 2026

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

說明

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

注意事項

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

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

前提條件

參數說明

SQLQueryRequest 包含以下參數。

名稱

類型

說明

query(必選)

String

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

樣本

說明

本文以建立表的映射關係為例介紹。如果要建立多元索引的映射關係,您只需將樣本中的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查詢常見錯誤排查。

相關文檔