暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a MPP Cluster的数据库“表”对象

三金先生 2023-10-23
310

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);

注意事项:

• 释放空间以物理文件为单位释放;

• 压缩模式改变只对后续入库数据有效

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论