19-Oracle入门之序列
发布时间:2020-12-12 15:28:26 所属栏目:百科 来源:网络整理
导读:基本概念 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内存可以提高访问效率 放在内存中速度快 auto_increment [ 1,2,3,4......20 ] ▲ CREATE SEQUENCE 语句 定义序列: CREATE SEQUENCE s
基本概念序列: 可供多个用户用来产生唯一数值的数据库对象
auto_increment
[ 1,2,3,4......20 ]
▲
CREATE SEQUENCE 语句定义序列: CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}];
创建序列
CREATE SEQUENCE dept_deptid_seq INCREMENT BY 10 START WITH 120 MAXVALUE 9999 NOCACHE NOCYCLE;
Sequence created.
查询序列
SELECT sequence_name,min_value,max_value,increment_by,last_number FROM user_sequences;
NEXTVAL 和 CURRVAL 伪列
INSERT INTO departments(department_id,department_name,location_id) VALUES (dept_deptid_seq.NEXTVAL,'Support',2500);
1 row created.
序列 DEPT_DEPTID_SEQ 的当前值 SELECT dept_deptid_seq.CURRVAL FROM dual;
使用序列
修改序列修改序列的增量,最大值,最小值,循环选项,或是否装入内存 ALTER SEQUENCE dept_deptid_seq INCREMENT BY 20 MAXVALUE 999999 NOCACHE NOCYCLE;
Sequence altered.
注意事项
删除序列
DROP SEQUENCE dept_deptid_seq;
Sequence dropped.
综合实例
create table tableA ( tid number,tname varchar2(40) );
insert into tableA values(myseq1.nextval,'aa');
序列的两个属性 NEXTVAL CURRVAL nextval应在currval之前被指定: SQL> select myseq.currval from dual;
select myseq.currval from dual
*
第 1 行出现错误:
ORA-08002: 序列 MYSEQ.CURRVAL 尚未在此会话中定义
select myseq.nextval from dual
select myseq.currval from dual
序列需要注意的问题
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |