GBase 8a MPP Cluster 允许名称由一个或多个标识符组成。组合名称的各个组成成分应该用英文句号字符“.”分隔开。组合名称的开始部分做为限定词来使用,它影响了上下文中后面的标识符的解释。
在 GBase 8a MPP Cluster 中,用户可以使用下列表格中的任一种方式引用一个列:
列引用 | 含义 |
|---|---|
col_name | 列 col_name 来自查询所用的任何一个表中对应字段。 |
table_name.col_name | 列 col_name 来自当前数据库中的表 table_name。 |
database_name.table_name.col_name | 列 col_name 来自数据库 database_name 中的表table_name。 |
vc_name.database_name.table_name.col_name | 列 col_name 来 自 虚 拟 集 群 vc_name 的数据库database_name 中的表 table_name。 |
`column_name` | 该字段是一个关键词或包含特殊字符。 |
组合标识符如果需要引用,则标识符的各部分都要各自引用,而不是把组合标识符作为一个整体来引用。例如:`gs-table`.`gs-column`合法, `gs-table.gs-column`不合法。 在 一 条 语 句 的 列 引 用 中 , 不 需 要 明 确 指 定 一 个 table_name 、database_name.table_name 或 vc_name.database_name.table_name 前缀,除非这个引用存在二义性。例如:
1)假设表 t1 和 t2 均包含一个字段 c,当用一个使用了 t1 和 t2 的 SELECT 检索 c
时,在这种情况下,字段 c 存在二义性,因为它在这个语句所使用的表不是唯一
的,因而必须通过写出 t1.c 或 t2.c 来指明用户所需的是哪个表。
2)如果从数据库db1的表t和数据库db2的表t中检索,用户必须用db1.t.col_name
和 db2.t.col_name 来指定引用哪个库表的列。
3)如果从 vc1 中数据库 db1 的表 t 和 vc2 中数据库 db2 的表 t 中检索,用户必须
用 vc1.db1.t.col_name 和 vc2.db2.t.col_name 来指定引用哪个库表的列。




