返回首页

gbase数据、南大通用产品文档:GBase8c常见问题

更新日期:2024年09月11日


在GBase 8c 上建立外表时,
不会同步在MariaDB/MySQL Server 上建表,
需要自己利用
MariaDB/MySQL Server 的客户端连接MariaDB/MySQL Server 建表。

创建USER MAPPING 时使用的MariaDB/MySQL Server 用户需要有远程连接
MariaDB/MySQL Server 及对表相关操作的权限。使用外表前,可以在GBase 8c server
所在的机器上,使用MariaDB/MySQL Server 的客户端,使用对应的用户名密码确认能
否成功连接MariaDB/MySQL Server 并进行操作。

对外表执行DML 操作时,
出现Can't initialize character set SQL_ASCII (path: compiled_in)
错误。
由于MariaDB 不支持SQL_ASCII 编码格式,
目前只能通过修改GBase 8c database
的编码格式解决该问题。
修改database 编码格式的方式为update pg_database set encoding
= pg_char_to_encoding('UTF-8') where datname = 'postgres'; datname 根据实际情况填写。
注意修改完编码格式后,需要重新开启一个gsql 会话,才能使mysql_fdw 使用更新后
的参数。也可以通过在执行gs_initdb 时,使用–locale=LOCALE,指定默认的编码格式
为非SQL_ASCII 编码。

数据库管理
使用“数据库管管理”功能,您可以查看多VC 集群,您可以对数据库进行
管理。数据库管理功能您可以对数据库进行新建、查看等操作。
下面的章节将根据如下功能详细介绍表管理功能:

新建数据库

查看数据库

语法
GROUP BY ROLLUP( (…),(…),…)
功能
对ROLLUP 后面括号里的n 个字段或表达式组合做GROUP BY 操作,最后将结果
合并在一起,组合方式为n、n-1、n-2、…、1、0。
详见下面的解释:
GROUP BY ROLLUP(A,B,C) (A、B、C 代表语法中的“(…)”)
首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)
进行GROUP BY,
然后对全表进行GROUP BY 操作,
最后将所有结果合并在一起(相
当于UNION ALL 操作),如果n 个字段或表达式中的一个或多个在某一分组中不出
现在GROUP BY 后面,用NULL 代替不出现的字段或表达式。
通常该函数用于统计例如商品的明细,小计以及最后总计的场景。
示例
示例1:GROUP BY ROLLUP(color_type,f_YearMonth)

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 576
gbase> SELECT NVL(color_type,'') as color_type_show,DECODE(NVL(color_type,''),'','总计
',NVL(f_YearMonth,color_type || ' 小计')) AS f_YearMonth_show,SUM(color_count) FROM
(SELECT color_type,DATE_FORMAT(in_date, '%Y-%m') as f_YearMonth,color_count FROM
t3) t GROUP BY ROLLUP(color_type,f_YearMonth) ORDER BY color_type,f_YearMonth;
+-----------------+------------------+------------------+
| color_type_show | f_YearMonth_show | SUM(color_count) |
+-----------------+------------------+------------------+
| black | 2010-09 | 18 |
| black | 2010-10 | 49 |
| black | black 小计 | 67 |
| blue | 2010-09 | 38 |
| blue | 2010-10 | 62 |
| blue | blue 小计 | 100 |
| red | 2010-09 | 41 |
| red | 2010-10 | 23 |
| red | red 小计 | 64 |
| | 总计 | 231 |
+-----------------+------------------+------------------+
10 rows in set