同义词
概述
同义词synonym是一个数据库对象,类似给对象起一个别名,具有以下用途:
- 当您需要在schema02中查询schema01的表t,但又不希望复制数据时,可以在schema02中为表t创建一个同义词sy_t。这样,您就可以直接在schema02中查询sy_t,而数据将实时与schema01中的表t保持一致。这是一种高效的数据管理策略,既保证了数据的一致性,又避免了不必要的数据重复。
- 提供一个抽象层,保护客户端应用程序免受对基础对象的名称或位置所做的更改的影响。
同义词属于schema,与schema中的其他对象一样,同义词的名称必须在该类型对象下唯一,支持为以下对象创建同义词:table、table stream、dynamic table、materialzied view、volume、function
操作管理
创建
-
TABLE|VOLUME|FUNCITON:表示同义词对象类型。
- TABLE: 这是默认选项。用于为table、table stream、materialzied view、dynamic table命名同义词。在这些情况下,“table”关键字是可选的。
- VOLUME:volume命名同义词时,必须明确指定此关键字。如果省略,系统将默认寻找同名的表格对象。FUNCITON,如果给function命名同义词,该关键字必须填写。如果未填写,则会寻找同名的table对象
- FUNCTION:function命名同义词时,此关键字是必填项。如果未指定,系统同样会默认寻找同名的table对象
-
synonym_name:同义词名称,遵循元数据规范
-
object:指定基对象的名称,支持workspace_name.schema_name_2.object_name、schema_name_2.name格式如果省略schema则使用当前schema中的对象
删除
-
TABLE|VOLUME|FUNCITON:表示给哪种对象命名同义词,
- TABLE:这是默认选项。用于为table、table stream、materialzied view、dynamic table命名同义词。在这些情况下,“table”关键字是可选的。
- VOLUME:volume命名同义词时,必须明确指定此关键字。如果省略,系统将默认寻找同名的表格对象。
- FUNCTION:function命名同义词时,此关键字是必填项。如果未指定,系统同样会默认寻找同名的table对象
-
if exists:可选,仅当同义词已存在时,才有条件地删除该同义词。
-
schema:可选,指定同义词所在的schema。如果未指定schema,则当前会话的默认schema。
权限
创建同义词需要create synonym权限
删除同义词,需要drop 权限
同义词查询权限
同义词权限与基表对象的权限相同。授予对同义词的权限等同于授予对应基表对象的权限。同样,授予对基表对象的权限等同于授予对该对象的所有同义词的权限。如果向用户授予对同义词的权限,则该用户可以在行使该权限的 SQL 语句中使用同义词名称或基表对象名称。
列出SYNONYM
使用示例
给table创建同义词
给table stream创建同义词,table stream和table创建同义词语法相同
给dynamic table创建同义词,dynamic table和table创建同义词语法相同
给materialzied view创建同义词,materialzied view和table创建同义词语法相同
给volume创建同义词,其中volume为必选,如果不指定则自动会查找和table、materialzied view、table stream、dynamic table同名的对象
给function创建同义词,其中function为必选,如果不指定则自动会查找和table、materialzied view、table stream、dynamic table同名的对象