语法格式
CREATE TABLE table_name_[(column_definition,...)] [REPLICATED] [DISTRIBUTED BY] [AS]
SELECT ...
功能
根据列定义以及投影列创建表结构,
并且将SELECT 中查询的数据复制到所创建的
表中。不支持跨引擎操作。
参数说明
REPLICATED:指定创建复制表选项。
DISTRIBUTED BY:指定创建表中的物理列column_name 是哈希列。
AS:指定SELECT 语句,可选关键字。
其他参数说明请参见“5.3.5.2.1 CREATE 8a TABLE”参数说明部分的内容。
示例
示例1:复制全表表结构及数据来创建随机分布表。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 609
gbase> CREATE TABLE t7(a INT, b DECIMAL, c FLOAT, d DATETIME);
Query OK, 0 rows affected
gbase> INSERT INTO t7 VALUES(1,2,3.345,'2011-11-11 11:11:11'),(3,5,5.678,'2011-11-11
22:22:22');
Query OK, 2 rows affected
Records: 2 Duplicates: 0 Warnings: 0
gbase> CREATE TABLE t8 SELECT * FROM t7;
Query OK, 2 rows affected
gbase> SELECT * FROM t8;
+------+------+-------+---------------------+
| a | b | c | d |
+------+------+-------+---------------------+
| 1 | 2 | 3.345 | 2011-11-11 11:11:11 |
| 3 | 5 | 5.678 | 2011-11-11 22:22:22 |
+------+------+-------+---------------------+
2 rows in set
示例2:
按照联合查询SELECT 的数据列复制表结构,
创建新的随机分布表,新表中
包含联合查询后的数据。
gbase> CREATE TABLE t11 SELECT a,b FROM t7 WHERE d>'2011-11-11 11:11:11' UNION
ALL SELECT a,b FROM t7 WHERE d='2011-11-11 11:11:11';
Query OK, 2 rows affected
gbase> SELECT * FROM t11;
+------+------+
| a | b |
+------+------+
| 3 | 5 |
| 1 | 2 |
+------+------+
2 rows in set