CREATE TABLE AS SELECT
功能
CREATE TABLE AS SELECT(简称 CTAS)语句可用于同步或异步查询原表并基于查询结果创建新表,然后将查询结果插入到新表中。
您可以通过 SUBMIT TASK 创建异步 CTAS 任务。
语法
-
同步查询原表并基于查询结果创建新表,然后将查询结果插入到新表中。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [database.]table_name
[column_name1 [, column_name2, ...]]
[index_definition1 [, index_definition2, ...]]
[key_desc]
[COMMENT "table comment"]
[partition_desc]
[distribution_desc]
[ORDER BY (column_name1 [, column_name2, ...])]
[PROPERTIES ("key"="value", ...)]AS SELECT query
[ ... ] -
异步查询原表并基于查询结果创建新表,然后将查询结果插入到新表中。
SUBMIT [/*+ SET_VAR(key=value) */] TASK [[database.]<task_name>]AS
CREATE TABLE [IF NOT EXISTS] [database.]table_name
[column_name1 [, column_name2, ...]]
[index_definition1 [, index_definition2, ...]]
[key_desc]
[COMMENT "table comment"]
[partition_desc]
[distribution_desc]
[ORDER BY (column_name1 [, column_name2, ...])]
[PROPERTIES ("key"="value", ...)] AS SELECT query
[ ... ]
参数说明
参数 | 必填 | 描述 |
---|---|---|
TEMPORARY | 否 | 创建临时表。从 v3.3.1 版本开始,StarRocks 支持在 Default Catalog 中创建临时表。更多信息,请参见 临时表。目前,StarRocks 不支持通过 SUBMIT TASK 发起异步任务创建临时表。 |
column_name | 否 | 新表的列名。您无需指定列类型。StarRocks 会自动选择合适的列类型,并将 FLOAT 和 DOUBLE 转换为 DECIMAL(38,9);将 CHAR、VARCHAR 和 STRING 转换为 VARCHAR(65533)。 |
index_definition | 否 | 自 3.1.8 开始支持为新表创建 Bitmap 索引,语法是 INDEX index_name (col_name[, col_name, ...]) [USING BITMAP] [COMMENT ''] 。有关参数说明和使用限制,请参见 Bitmap 索引 |