本文介绍如何定义同义词。

语法

CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.]syn_name
        FOR object_schema.object_name[@dblink_name];

说明

CREATE SYNONYM为某些数据库对象类型定义同义词。PolarDB PostgreSQL版(兼容Oracle)支持以下对象的同义词:

  • 视图
  • 具体化视图
  • 序列
  • 存储过程
  • 存储函数
  • 类型
  • 可通过database link访问的对象
  • 其他同义词

参数

参数说明
syn_namesyn_name是同义词的名称。同义词名称在schema中必须是唯一的。
schemaschema指定同义词所在schema的名称。如果未指定schema名称,则在搜索路径中的第一个现有schema中创建同义词。
object_nameobject_name指定对象的名称。
object_schemaobject_schema指定被引用对象所在的schema的名称。
dblink_namedblink_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;