CREATE SYNONYM
功能描述
创建同义词。
注意事项
创建同义词时,需要给出同义词链接的对象。
创建同义词时,需要同义词对象存在。
同义词的对象支持表、函数和视图,其它会提示对象不存在。
创建同义词后,同义词对象如果删除或更改,同义词展开时将报错。
可以通过系统视图MY_SYNONYMS、ADM_SYNONYMS查看同义词。
执行该语句的用户需要有CREATE SYNONYM、CREATE ANY SYNONYM或者ALL PRIVILEGES的系统权限,普通用户不可以创建系统用户对象。
指定PUBLIC同义词并且给出同义词schema,检查不一致报错处理。
创建PUBLIC同义词时需拥有CREATE PUBLIC SYNONYM系统权限,否则会报错。
语法格式
CREATE [ OR REPLACE ] [ PUBLIC ] SYNONYM [ schema_name. ]synonym_name FOR [ schema_name. ]object_name
参数说明
OR REPLACE
创建同义词时,若同义词存在则更新。
[ schema_name. ]
用户名。不指定时默认是当前登录用户。
PUBLIC
创建public用户的同义词,其他用户不需要授权直接访问同义词,但同义词对象权限仍然做检查。
创建普通用户同义词,可以和public用户中同义词同名。
synonym_name
同义词,参见数据库对象名规范。
object_name
同义词对象,参见数据库对象名规范,一个表/视图对应的同义词数量不做约束。
表示视图和表名。
示例
为视图privilege_view创建一个PUBLIC用户同义词和一个普通用户同义词。
--删除表privilege。 DROP TABLE IF EXISTS privilege; --创建表privilege。 CREATE TABLE privilege(staff_id INT PRIMARY KEY, privilege_name VARCHAR(64) NOT NULL, privilege_description VARCHAR(64), privilege_approver VARCHAR(10)); --创建视图privilege_view,若该视图存在则更新该视图。 CREATE OR REPLACE VIEW privilege_view AS SELECT staff_id, privilege_name from privilege; --为视图privilege_view创建一个PUBLIC用户同义词。 CREATE OR REPLACE PUBLIC SYNONYM pri_vi for privilege_view; --为视图privilege_view创建一个普通用户同义词。 CREATE OR REPLACE SYNONYM pri_vi for privilege_view; 为表privilege创建一个PUBLIC用户同义词和一个普通用户同义词。 --为表privilege创建一个PUBLIC用户同义词。 CREATE OR REPLACE PUBLIC SYNONYM pri for privilege; --为表privilege创建一个普通用户同义词。 CREATE OR REPLACE SYNONYM pri for privilege;