全部产品
Search
文档中心

表格存储:创建映射关系

更新时间:Sep 29, 2026

通过 PHP SDK 为已有数据表或多元索引创建映射关系,以便通过 SQL 访问数据。

说明

关于create table语句的更多信息,请参见创建表的映射关系和创建多元索引的映射关系。

注意事项

表格存储PHP 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 ?

  • 出现此问题的可能原因如下:

    该表已创建映射关系。

    • 用户已手动为该表创建映射关系。

    • 表格存储后台已自动创建该表的映射关系。在未创建数据表的映射关系的情况下,直接使用SQL语句(例如DESCRIBE、SELECT等)查询数据,表格存储后台将自动创建该数据表的映射关系。自动创建的映射表仅包含数据表的主键列和预定义列,并且不支持更新属性列。

  • 解决方案:

    您可以通过DESCRIBE语句查看现有映射表的表结构,如果不符合业务查询要求,您可以更新映射表属性列。系统自动创建的映射表无法更新属性列,请在确保不影响业务的情况下删除并重新创建映射表。

说明

更多关于SQL查询功能的常见错误及其解决方案,请参见SQL查询常见错误排查。

相关文档