Oracle Sequence & Synonym
接着昨天的,今天继续来了解一下Oracle的Sequence和Synonym这两个部件。基本上来说,搞定这两个,Oracle中的相关Object类型都学习得七七八八了(除了PLSQL上的那几种类型)。从细分上来说,那是属于Oracle Developer的事情了,不属于DBA管。好了,这两个类型的object都比较简单,所以就简单得介绍一下:
一、序列 Sequence
1、序列的创建
create sequence emp_sequece
increment by 1 --每次增长数
start with 1 --开始数
nomaxvalue --最大限制
cache 10; --预缓存数量
2、序列的各个选项意义
CREATE SEQUENCE [schema.]sequence
[INCREMENT BY integer]
[START WITH integer]
[MAXVALUE integer]|[NOMAXVALUE]
[MINVALUE integer]|[NOMINVALUE]
[CYCLE]|[NOCYCLE]
[CACHE integer]|[NOCACHE]
[ORDER]|[NOORDER]
INCREMENT BY:每次增长的数额,默认为1,如需要递减序列,则设为负数
START WITH:序列开始数值,默认为0
MAXVALUE:设置一个序列的最大值,默认为NOMAXVALUE,最大值为10^27
MINVALUE:设置一个序列的最小值,默认为NOMINVALUE,最大值为-10^26
CYCLE:是否循环,在到达MAXVALUE|MINVALUE后从MINVALUE|MAXVALUE接着开始
CACHE:每次存放多少个序号到内存,以提高读取速度,默认是20
ORDER:按指定顺序增长,一般用于RAC,单独实例不需要,默认为NOORDER
3、更改序列
alter sequence emp_sequece
... ...
4、删除序列
drop sequence emp_sequece;
5、数据字典
dba|all|user_sequences
二、同义词 Synonym
同义词是模式中对象的别名,可以屏蔽对象的名称和拥有着,而且可以方便记忆,并提高了SQL语句的可读性。
用户可以对同义词进行与对象名称同样的操作,而且可以分别建立public同义词和private同义词。私有同义词不能与用户的其他object同名。
1、创建同义词
create public synonym public_emp for jward.emp;
2、删除同义词
drop public synonym public_emp;
注意:删除对象后,相应的同义词不会自动删除,需要之后手动查询。而当删除同义词,没有删除对象时,相应的对象会失效,需要重新编译。
3、数据字典
dba|all|user_synonyms
通过这个视图可以看到,所有的synonym还包括了是否使用dblink。