通過create table語句為已存在的表或者多元索引建立映射關係。建立映射關係時需要配置表的欄位名稱、欄位類型和主鍵資訊以及根據需要配置查詢資料時的執行引擎。
關於create table語句的更多資訊,請參見建立表的映射關係和建立多元索引的映射關係。
注意事項
Table Store.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 ?
出現此問題的可能原因如下:
該表已建立映射關係。
使用者已手動為該表建立映射關係。
Table Store後台已自動建立該表的映射關係。在未建立資料表的映射關係的情況下,直接使用SQL語句(例如DESCRIBE、SELECT等)查詢資料,Table Store後台將自動建立該資料表的映射關係。自動建立的映射表僅包含資料表的主鍵列和預定義列,並且不支援更新屬性列。
解決方案:
您可以通過
DESCRIBE
語句查看現有映射表的表結構,如果不符合業務查詢要求,您可以更新映射表屬性列。系統自動建立的映射表無法更新屬性列,請在確保不影響業務的情況下刪除並重新建立映射表。
更多關於SQL查詢功能的常見錯誤及其解決方案,請參見SQL查詢常見錯誤排查。