本文介绍如何定义同义词。
语法
CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.]syn_name
FOR object_schema.object_name[@dblink_name];
说明
CREATE SYNONYM为某些数据库对象类型定义同义词。PolarDB PostgreSQL版(兼容Oracle)支持以下对象的同义词:
- 表
- 视图
- 具体化视图
- 序列
- 存储过程
- 存储函数
- 类型
- 可通过database link访问的对象
- 其他同义词
参数
参数 | 说明 |
---|---|
syn_name | syn_name是同义词的名称。同义词名称在schema中必须是唯一的。 |
schema | schema指定同义词所在schema的名称。如果未指定schema名称,则在搜索路径中的第一个现有schema中创建同义词。 |
object_name | object_name指定对象的名称。 |
object_schema | object_schema指定被引用对象所在的schema的名称。 |
dblink_name | dblink_name指定通过其访问对象的database link的名称。 |
包括REPLACE子句,以将现有同义词定义替换为新的同义词定义。
包括PUBLIC子句,以在public schema中创建同义词。CREATE PUBLIC SYNONYM命令与Oracle数据库兼容,可创建位于public schema中的同义词。
CREATE [OR REPLACE] PUBLIC SYNONYM syn_name FOR object_schema.object_name;
以下只是一种简写方式:
CREATE [OR REPLACE] SYNONYM public.syn_name FOR object_schema.object_name;
注释
对同义词所引用对象的访问由该同义词当前用户的权限决定;同义词用户必须对基础数据库对象具备适当权限。
示例
在schema中为emp表创建名为polardb的同义词:
CREATE SYNONYM personnel FOR polardb.emp;