关键字:
KingbaseES、同义词、人大金仓
什么是同义词
同义词是一个模式对象的别名。因为同义词只是一个别名,因此除了要在数据字典存储其定义之外,不需要其它存储。同义词可以为数据库用户简化 SQL 语句。同义词也可以用于隐藏底层模式对象的标识和位置。如果必须重命名或移动底层对象,仅需要重新定义同义词。基于同义词的应用程序,可以减少大量因对象名改变的修改工作。
KingbaseEs同义词所支持的数据库对象
- 表
- 视图
- 物化视图
- 函数
- 存储过程
- 序列
- 同义词
- 数据类型
- 包
- dblink
KingbaseEs同义词所支持的数据库对象相关使用示例
表
create table test (a int);
insert into test values (5);
create public synonym tyc1 for test;
select * from tyc1;
视图
create view v1 as select * from test;
select * from v1;
create public synonym tyc2 for v1;
select * from tyc2;
物化视图
create materialized view mv as select * from test;
select * from mv;
create public synonym tyc3 for mv;
select * from tyc3;
函数
\set SQLTERM /
CREATE OR REPLACE FUNCTION aa() RETURN int as
begin
return 1;
end;
/
\set SQLTERM ;
select aa();
create public synonym tyc4 for aa;
select tyc4();
存储过程
\set SQLTERM /
CREATE OR REPLACE procedure bb() as
begin
raise notice '111';
end;
/
\set SQLTERM ;
call bb();
create public synonym tyc5 for bb;
call tyc5();
序列
create sequence s1;
select s1.nextval;
create public synonym tyc6 for s1;
select tyc6.nextval;
同义词
select * from tyc1;
create public synonym tyc7 for tyc1;
select * from tyc7;
数据类型
create or replace type type1 as object (a test,b test);
create public synonym tyc8 for type1;
create table new (aa int , bb tyc8);
\d+ new
包
\set SQLTERM /
CREATE OR REPLACE PACKAGE ccc AS
FUNCTION my_function () RETURN text;
END ccc;
CREATE OR REPLACE PACKAGE BODY ccc AS
FUNCTION my_function () RETURN text as
BEGIN
RETURN 'test_function';
END my_function;
END ccc;
/
\set SQLTERM ;
select ccc.my_function();
create public synonym tyc9 for ccc;
select tyc9.my_function();
dblink
select * from test@dblink;
create public synonym tyc10 for test@dblink;
select * from tyc10;