全部产品
Search
文档中心

表格存储:创建映射关系

更新时间:May 22, 2025

通过create table语句为已存在的表或者多元索引创建映射关系。创建映射关系时需要配置表的字段名称、字段类型和主键信息以及根据需要配置查询数据时的执行引擎。

说明

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

注意事项

表格存储.NET SDK从5.0.0版本开始支持SQL查询功能,使用SQL查询功能时,请确保安装了正确的.NET SDK版本。

关于.NET SDK历史迭代版本的更多信息,请参见.NET SDK历史迭代版本

前提条件

参数

参数

说明

query

SQL语句,请根据所需功能进行设置。

示例

说明

本文以创建表的映射关系为例介绍。如果要创建多元索引的映射关系,您只需将示例中的SQL语句替换为创建多元索引映射关系的SQL语句即可。

以下示例用于使用CREATE TABLE `test_table` (`pk0` VARCHAR(1024), `pk1` BIGINT(20), `col0` MEDIUMTEXT, `col1` BIGINT(20), `col2` DOUBLE, `col3` BOOL, `col4` MEDIUMBLOB, `date_col` MEDIUMTEXT, `geo_col` MEDIUMTEXT, `col0_v1` MEDIUMTEXT, `col0_v2` MEDIUMTEXT, PRIMARY KEY(`pk0`,`pk1`));语句创建test_table表的映射关系。

/// <summary>
/// 创建数据表的映射关系。
/// </summary>
/// <param name="otsClient"></param>
public static void CreateMappingTable(OTSClient otsClient)
{
    string sqlCommand = @"CREATE TABLE `test_table` (
        `pk0` VARCHAR(1024),
        `pk1` BIGINT(20),
        `col0` MEDIUMTEXT,
        `col1` BIGINT(20),
        `col2` DOUBLE,
        `col3` BOOL,
        `col4` MEDIUMBLOB,
        `date_col` MEDIUMTEXT,
        `geo_col` MEDIUMTEXT,
        `col0_v1` MEDIUMTEXT,
        `col0_v2` MEDIUMTEXT,
        PRIMARY KEY(`pk0`,`pk1`)
    );";

    SQLQueryRequest sqlQueryRequest = new SQLQueryRequest(sqlCommand);

    SQLQueryResponse sqlQueryResponse = otsClient.SQLQuery(sqlQueryRequest);
}

常见问题

创建映射关系时出现Table 'instancename.tablename' doesn't exist ?

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

    创建映射关系时,指定的表不存在。

  • 解决方案:

    SQL中的Create Table语句只能为已存在的表或者多元索引创建映射关系。请确保要创建映射关系的表或者多元索引存在。

创建映射关系时出现Table 'instancename.tablename' already exist ?

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

    该表已创建映射关系。

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

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

  • 解决方案:

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

说明

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

相关文档