创建序列需要权限 create sequence
授权过程
创建序列的语法
create sequence 序列名 increment by n;
increment by n 设置序列的间隔长度
例如:
默认情况下,不设定间隔长度默认为一
其他参数:
start with 定义序列的起始值
maxvalue 序列器能产生的最大值
minvalue 序列能产生的最小值
例如:
XL_5 含义为,创建序列为递减序列,间隔为1,起始值为-200 最小值为-300;
cycle 循环 nocycle 不循环
如XL_5 当序列生成器生成了-200到-300的数之后,使用cycle和nocycle来确定是否循环。
cache 存放序列内存块的大小,默认为20(内存块的作用是增加序列的性能,不过会占用内存空间)
nocache 不缓冲
删除序列
语法
drop sequence 序列名
序列允许被修改,但是start with参数不可以修改,修改序列的参数,只会影响以后对序列的使用,对已存入的数据无效。
语法
alter sequence 序列名 ……参数
使用序列的方法
参数
currval 使用当前序列值
nextval 使用下一个值
语法: 序列名.currval/nextval
例如:
可以通过 select语句查询序列
序列的数据字典:user_sequences
oracle 同义词
同义词相当于一个alias,便于查找
分为公有同义词和私有同义词
权限:
公有同义词: create public synonym 公有同义词会对所有人生效
私有同义词: create synonym 只对自己生效
当创建的表,公有同义词,私有同义词三者同名的时候,使用select的优先级为
表〉私有〉公有
创建公有同义词:
语法
create public synonym 同义词名 for 对象名;
上面例子中,之前创建过名为A的表掩饰序列,所以在查询时因为优先级的原因没有显示EMP表,而B的时候就会显示
创建私有同义词的方法相同
create synonym 同义名 for 对象名
删除同义词
drop public synonym 同义词名称,需要删除的权限:drop public synonym。
同义词数据字典: user_synonyms