创建映射关系

更新时间:
复制 MD 格式

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

说明

Tablestore 不会自动为数据表创建 SQL 映射表。要通过 SQL 访问数据表,需要先执行 CREATE TABLE 创建映射关系。

有关 CREATE TABLE 语句的语法、字段类型和参数说明,请参见DDL 操作。

注意事项

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

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

前提条件

参数

参数

说明

query

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

示例

说明

以下示例以数据表的映射关系为例。如需创建多元索引的映射关系,将示例中的 SQL 语句替换为对应的多元索引 CREATE TABLE 语句即可。

以下示例用于使用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 ?

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

    该表已通过 CREATE TABLE 语句创建映射关系。

  • 解决方案:

    您可以通过DESCRIBE语句查看现有映射表的表结构,如果不符合业务查询要求,您可以DDL 操作。

说明

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

相关文档