同义词与序列

时间:2021-06-30 03:10:52

同义词的目的是为了访问不同用户的对象。

同义词分为:私有同义词和公共同义词。

默认的创建为私有的同义词。创建方式为:create synonym synname for someuser's object

例如:create synonym dept for scott.department;

以上为私有同义词,只能创建人使用。

删除同义词的方法为:drop synonym synname

创建公共同义词,它简化了迁移。

create public synonym synname for someuser's object.

如果在不同的意识形态下,不同的抽象逻辑对应一个实体,那么同义词是一个不错的选择。

查看同义词表:

select synonym_name,table_name,table_owner from user_synonyms;

以上的操作只需要记住同义词的表明即可。

使用同义词解决的问题。在企业信息系统中,员工表,职员表;库存表,商品表;这些表对于不同的业务只是叫法上的不同,本质上他们是相同的,所以只须为他们分别取不同的名字来完成业务上的概念。

序列:有序对象,它为一个独立的事务,它占用的空间很小,多用于产生唯一值。

create sequence myseq
start with int_value
increment by int_value
--为之排序
order
--防止循环
nocycle

在使用NEXTVAL后方可使用CURRVAL ,这样符合有序原则,如果不遵循的话,序列的值可能会增加,造成一定的困惑。
select myseq.NEXTVAL from auto;
select myseq.CURRVAL from auto

可以按照如下的方式直接使用,这样自增序列就绑定了表的某个字段。

insert into auto values(myseq.NEXTVAL,'edwin')

我们可以更改序列的递增量但是却不能更改当前的值,方式如下:

alter sequence myseq    

increament by intvalue