1,sequence 概念:
2,创建一个sequence:
SQL> create sequence testse2
2 increment by 1
3 start with 1;
序列已创建。
3,SQL> select testse2.currval from test1;
select testse2.currval from test1
*
第 1 行出现错误:
ORA-08002: 序列 TESTSE2.CURRVAL 尚未在此会话中定义
4,查询sequence的下一个值NEXTVAL:NEXTVAL must be issued for that sequence bebofe CURRVAL contains a value;
SQL> select testse2.nextval from test1;
NEXTVAL
----------
1
2
3
4
5
6
7
已选择7行。
5,查询sequence当前值;
SQL> select testse2.currval from test1;
CURRVAL
----------
7
7
7
7
7
7
7
已选择7行。
6,使用sequence向表中插入currval值;
SQL> insert into test3
2 values(testse2.currval,'kong','unkown');
已创建 1 行。
SQL> select * from test3;
ID LNAME FNAME
---------- -------------------- --------------------
14 kong unkown
7,使用sequence向表中插入nextval值;
SQL> insert into test3
2 values(testse2.nextval,'kongkong','unkown');
已创建 1 行。
SQL> select * from test3;
ID LNAME FNAME
---------- -------------------- --------------------
14 kong unkown
15 kongkong unkown
8,sequence中的起始值不可改变;
SQL> alter sequence testse2
2 start with 2;
start with 2
*
第 2 行出现错误:
ORA-02283: 无法更改启动序列号
9,序列的递增形式;
SQL> select testse2.nextval from test3;
NEXTVAL
----------
25
35
SQL> insert into test3
2 values(testse2.currval,'kong3','unknow');
已创建 1 行。
SQL> select * from test3;
ID LNAME FNAME
---------- -------------------- --------------------
14 kong unkown
15 kongkong unkown
55 kong3 unknow
SQL> select testse2.nextval from test3;
NEXTVAL
----------
65
75
85
10,删除序列sequence;
SQL> drop sequence testse1;
序列已删除。
阅读(2499) | 评论(0) | 转发(0) |