更新日期:2024年09月11日
GBase 8a MPP Cluster 允许名称由一个或多个标识符组成。
组合名称的各个组成成
分应该用英文句号字符“.”分隔开。组合名称的开始部分做为限定词来使用,它
影响了上下文中后面的标识符的解释。
在GBase 8a MPP Cluster 中,
用户可以使用下列表格中的任一种方式引用一个列:
表5- 2 列引用方式
列引用
含义
col_name
列col_name 来自查询所用的任何一个表中对应字段。
table_name.col_name
列col_name 来自当前数据库中的表table_name。
database_name.table_name.c
ol_name
列col_name 来自数据库database_name 中的表
table_name。
vc_name.database_name.tabl
e_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 来指定引用哪个库表的列。