GBase 8a MPP Cluster的数据库“表”对象,支持表的创建、修改(包括表名称重命名)、删除
(DELETE、TRUNCATE);
支持分布表、复制表、临时表、nocopies表等表类型
临时表
使用关键词TEMPORARY,临时表被限制在当前连接中,当连接关闭时,临时表会自动被删除。
创建临时表:
gbase> CREATE TEMPORARY TABLE tem_table (a int); 修改和删除语法和普通表一样
综合示例:
gbase> CREATE TEMPORARY TABLE t1 (a int,b varchar(10)) DISTRIBUTED
BY ('a') NOCOPIES;
Query OK, 0 rows affected
注意事项:
临时表支持除ALTER之外的所有DDL及DML操作。 临时表不支持使用gcdump工具导出表结构。 临时表支持在当前session中使用查询结果导出语句导出表中数据 临时表不能被备份。
创建表
• gbase> CREATE TABLE t1 (a varchar(10) NOT NULL, b int AUTO_INCREMENT,PRIMARY KEY(b)); • gbase> CREATE TABLE ti (c INT, KEY idx_hash_tc(c) USING HASH global); • gbase> CREATE TABLE student2(stu_no VARCHAR(10)) SELECT stu_no ,birthday FROM student; • gbase> CREATE TABLE new_student LIKE student;
注意事项
PRIMARY KEY、CHECK语法支持,不起实际效用
拷贝表
• 拷贝表,目标表默认为随机分布表 示例: create table t2 as select * from t1; 该方式建立的t2表没有hash分布列,即使t1有hash分布列
• 拷贝表,目标表为任意类型表 示例: create table t2 distributed by ('fx') as select * from t1 limit 0; create table t2 replicated as select * from t1 limit 0; create table t2 distributed by ('fx') nocopies as select * from t1 limit 0;
• 拷贝表,目标表类型与源表一致 create table t2 like t1;
修改表
• gbase> ALTER TABLE t ADD column c varchar(10) null;
• gbase> ALTER TABLE t DROP column b;
• gbase> ALTER TABLE t RENAME t2;
• gbase> ALTER TABLE t CHANGE b d varchar(10);
• gbase> ALTER TABLE t MODIFY b varchar(100);
注意事项
• 不支持改变列的数据类型、改变列的属性(NOT NULL,默认值)、改变表的字符集;
修改表
• gbase> ALTER TABLE t SHRINK SPACE;
• gbase> ALTER TABLE t1 ALTER a COMPRESS(1);
• gbase> ALTER TABLE t2 ALTER compress(5,5);
注意事项:
• 释放空间以物理文件为单位释放;
• 压缩模式改变只对后续入库数据有效




