改变表中的数据对序列没有影响,只有在使用序列的下一个值时,序列才会递增,换句话说只有实行了 seq.nextval后才会改变序列的当前值
oracle 新建序列:
Create sequence seq_cdpt
Increment by 1
Start with 1
Maxvalue 999999
Minvalue 1
Nocycle
nocache
说明:
create sequence seq_cdpt //创建序列名称
minvalue 1 //最小值
maxvalue 100000 //最大值
start with 15 //序列起始值,递增默认是minvalue,递减默认是maxvalue
increment by 1 //递增的序列值是n,如果n是正数就递增,如果是负数就递减 默认是1
nocache; //分配并存入内存中:否
nocycle; //不循环
实现主键自增
insert into cdpt values(seq_cdpt.nextval,‘weifan’);
返回序列中下一个有效的值,任何用户都可以引用
SELECT SEQUENCE_NAME.NEXTVAL FROM DUAL; eg:select seq_test_1.nextval from dual;
返回序列当前的值
SELECT SEQUENCE_NAME.CURRVAL FROM DUAL; eg:select seq_test_1.CURRVAL from dual;
修改序列,删除序列
Alter SEQUENCE xxx; Drop SEQUENCE xxx;