一、学会使用11g中的序列,知道在程序中如何实现自增

1,序列是用于生成唯一、连续序号的对象;序列可以是升序的,也可以是降序的;使用 CREATE SEQUENCE 语句创建序列

1-1,查询用户所拥有的角色:select * from dba_role_privs d where d.grantee='SCOTT';

1-2,查询当前登录的用户所拥有的角色:select * from user_role prives;

1-3,查询当前登录的用户所拥用的角色中拥有的具体权限:select * from role_sys_privs;

说明:CACHE 表示的是当你从序列中拿到第一个数时,ORACLE会自动计算出CACHE个单位的连续的数存放到内存中,好处就是不用每次取数都要计算,而是一次就计算出CACHE个单位的数放在内存中,用完了再重新

计算CACHE个单位的数放在内存中,可以手动设置一次计算的个数,默认为20个

1-4,create sequence 序列名 start with 1000 increment by -1 maxvalue 1000;表示从1000开始,每次减1

2,访问序列

2-1,通过序列的伪列来访问序列的值;NEXTVAL 返回序列的下一个值,CURRVAL 返回序列的当前值

说明:第一次使用序列中的值的时候,要使用NEXTVAL;

如果要使插入的数据的格式是 2010_001 ,可以这样 insert into student values('2010_'||to_char(stu_seq.nestval), '唐方敏');

3,更改和删除序列

3-1,使用 ALTER SEQUENCE 语句修改序列,不能更改序列的 START WITH 参数;例:

ALTER SEQUENCE stu_seq MAXVALUE 5000 CYCLE; 表示将序列 stu_seq 的最大值修改为5000,并且是循环使用;

3-2,使用 DROP SEQUENCE 语句删除序列;例:

DROP SEQUENCE stu_seq;

posted on 2018-12-06 11:17  独自的独行  阅读(105)  评论(0编辑  收藏  举报