我建了一个序列seq!建立一个表表a,表的主键就是这个序列
我通过seq.nextval为主键向表中插入数据
1 ……
2……
3……
4……
5……
然后我把第二条记录删除了,也就是2…… 这条记录没了
当我再次插入数据的时候!
我如何才能插入2………… 而不是6…………谢谢注:我在建立序列的时候已经将cycle选项勾上了
我通过seq.nextval为主键向表中插入数据
1 ……
2……
3……
4……
5……
然后我把第二条记录删除了,也就是2…… 这条记录没了
当我再次插入数据的时候!
我如何才能插入2………… 而不是6…………谢谢注:我在建立序列的时候已经将cycle选项勾上了
select min(c_pk) from 表a t
where c_pk>1 and not exists(select 1 from 表a where c_pk=t.c_pk-1)找到最小的空号
找最小空号可以用
select max(c_pk)+1 from 表a t
start with c_pk=1
connect by prior c_pk=c_pk-1;
--序列无法实现的,cycle表示循环,如果超过了最大值,就由最小值开始
序列相当于标识列,没有什么实在的含义
select min(id) from (
select id,rownum rn from table order by id
) where id<>rn