语法格式
CREATE TABLE [[vc_name.]database_name.]table_name (column-definitions,
[GROUPED_DEFINITIONS]
);
GROUPED_DEFINITION:
GROUPED
[grouped_name](column_references)[COMPRESS(<’method’>,
表5- 86 参数说明
参数名称
说
明
vc_name
vc 名,可选项。
database_name
数据库名,可选项。
table_name
表名
GROUPED
关键字,表示定义的是行存列。
grouped_name
表示行存列的名称,可以指定行存列名称。如果
不指定名称,则默认为后面的column_references
中第一个列的名称,如果该名称重名,则在名称
后面加上“_#”(#为从2 开始的一个数字)。
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1036
参数名称
说
明
column_references
行存列中包含的物理列的集合,各列间以“,”分
隔。
COMPRESS(<’method’>,
为行存列指定压缩算法。具体用法参考压缩章节。
示例
示例1:建表时创建行存列,并指定行存列名称,行存列使用压缩算法。
gbase>
CREATE
TABLE
t(a
int,b
int,c
int,d
int,GROUPED
ga(b,c)
COMPRESS('rapidz',0));
Query OK, 0 rows affected (Elapsed: 00:00:00.19)
gbase> show create table t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL,
"c" int(11) DEFAULT NULL,
"d" int(11) DEFAULT NULL,
GROUPED "ga" ("b","c") COMPRESS('RapidZ', 0)
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例2:建表时创建行存列,不指定行存列名称。
gbase> CREATE TABLE t(a int,b int,c int,d int,GROUPED (b,c),GROUPED
(d));
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL,
"c" int(11) DEFAULT NULL,
"d" int(11) DEFAULT NULL,
GROUPED "b" ("b","c"),
GROUPED "d" ("d")
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1037
1 row in set (Elapsed: 00:00:00.00)
示例3:建表时创建行存列,指定部分行存列名称。如果行存列名称重名,则在
该名称后面加上“_#”(#为从2 开始的一个数字)。
gbase> DROP TABLE IF EXISTS t;
Query OK, 0 rows affected
gbase> CREATE TABLE t(a int,b int,c int,d int,GROUPED a(b,c),GROUPED
(a));
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL,
"c" int(11) DEFAULT NULL,
"d" int(11) DEFAULT NULL,
GROUPED "a" ("b","c"),
GROUPED "a_2" ("a")
)
ENGINE=EXPRESS
DEFAULT
CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例4:建表时创建多个行存列,重复指定行存列名称,返回错误码1061。
gbase> DROP TABLE IF EXISTS t;
Query OK, 0 rows affected
gbase> CREATE TABLE t (a int,b int,c int,d int, GROUPED a(b,c),
GROUPED a(d));
ERROR 1702 (HY000): gcluster table error: Duplicate key name 'a'.
示例5:建表时创建多个行存列,并指定行存列名称,使用压缩表语法。
gbase>
DROP TABLE IF EXISTS t;
Query OK, 0 rows affected
gbase> CREATE TABLE t(a int,b int,c int,d int,GROUPED a(b,c),GROUPED
b(a,d)) COMPRESS('RapidZ', 0);
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t \G
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1038
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL,
"c" int(11) DEFAULT NULL,
"d" int(11) DEFAULT NULL,
GROUPED "a" ("b","c"),
GROUPED "b" ("a","d")
) COMPRESS('RapidZ', 0)
ENGINE=EXPRESS DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)
示例6:建表时创建多个行存列,并指定行存列名称,行存列和表都使用压缩语
法。
gbase> DROP TABLE IF EXISTS t;
Query OK, 0 rows affected
gbase>
CREATE
TABLE
t(a
int,b
int,c
int,d
int,GROUPED
a(b,c) ,GROUPED b(a,d) COMPRESS('HighZ', 0)) COMPRESS('RapidZ',
0);
Query OK, 0 rows affected
gbase> SHOW CREATE TABLE t \G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE "t" (
"a" int(11) DEFAULT NULL,
"b" int(11) DEFAULT NULL,
"c" int(11) DEFAULT NULL,
"d" int(11) DEFAULT NULL,
GROUPED "a" ("b","c"),
GROUPED "b" ("a","d") COMPRESS('HighZ', 0)
) COMPRESS('RapidZ', 0)
ENGINE=EXPRESS DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace'
1 row in set (Elapsed: 00:00:00.00)