创建序列需要权限 create sequence

授权过程

oracle 序列与同义词

创建序列的语法

create sequence 序列名 increment by n;

increment by n 设置序列的间隔长度

例如:

oracle 序列与同义词

默认情况下,不设定间隔长度默认为一

其他参数:

start with 定义序列的起始值

oracle 序列与同义词

maxvalue 序列器能产生的最大值

minvalue 序列能产生的最小值

例如:

oracle 序列与同义词

XL_5 含义为,创建序列为递减序列,间隔为1,起始值为-200 最小值为-300;

cycle 循环 nocycle 不循环   

如XL_5 当序列生成器生成了-200到-300的数之后,使用cycle和nocycle来确定是否循环。

oracle 序列与同义词

oracle 序列与同义词

cache 存放序列内存块的大小,默认为20(内存块的作用是增加序列的性能,不过会占用内存空间)

nocache 不缓冲

oracle 序列与同义词

删除序列

语法

drop sequence 序列名

oracle 序列与同义词

序列允许被修改,但是start with参数不可以修改,修改序列的参数,只会影响以后对序列的使用,对已存入的数据无效。

语法

alter sequence 序列名 ……参数

oracle 序列与同义词

使用序列的方法

参数

currval  使用当前序列值

nextval 使用下一个值

语法:  序列名.currval/nextval

例如:

oracle 序列与同义词 

可以通过 select语句查询序列

oracle 序列与同义词

序列的数据字典:user_sequences

 

oracle 同义词

同义词相当于一个alias,便于查找

分为公有同义词和私有同义词

权限:

公有同义词:  create public synonym  公有同义词会对所有人生效

私有同义词:  create synonym    只对自己生效

当创建的表,公有同义词,私有同义词三者同名的时候,使用select的优先级为

表〉私有〉公有

创建公有同义词:

语法

create public synonym 同义词名 for 对象名;

oracle 序列与同义词

上面例子中,之前创建过名为A的表掩饰序列,所以在查询时因为优先级的原因没有显示EMP表,而B的时候就会显示

创建私有同义词的方法相同

create synonym 同义名 for 对象名

删除同义词

drop public synonym 同义词名称,需要删除的权限:drop public synonym。

同义词数据字典: user_synonyms