什么是序列?
序列: 可供多个用户用来产生唯一数值的数据库对象
•自动提供唯一的数值
•共享对象
•主要用于提供主键值
•将序列值装入内存可以提高访问效率
CREATE SEQUENCE 语句
CREATE SEQUENCE sequence
[INCREMENT BY n] --每次增长的数值
[START WITH n] --从哪个值开始
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINVALUE}]
[{CYCLE | NOCYCLE}] --是否需要循环
[{CACHE n | NOCACHE}]; --是否缓存登录
•创建序列 DEPT_DEPTID_SEQ
CREATE SEQUENCE dept_deptid_seq
INCREMENT BY 10
START WITH 120
MAXVALUE 9999
NOCACHE
NOCYCLE;
然后创建一个表:
create table temp (id number(10),name varchar(20),age number(3) ,address verchar(40));
在temp表中 插入数据,并且以把id 字段作为主键:但是序列不能作为参数动态写入,必须在sql中写;
insert into temp values (DEPT_DEPTID_SEQ.nextval,"zhangsan",19,"xxxxxxx");
序列是一个对象,有两个属性:
.nextval 和 .currval;
•序列在下列情况下出现裂缝:
–回滚
–系统异常
–多个表同时使用同一序列(所以一个表维护一个序列)
修改一个序列
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999
NOCACHE
NOCYCLE;
删除一个序列
DROP SEQUENCE dept_deptid_seq;