比如有99 条数据,但发现ID(自增长)的最大值是100,怎么找出那个漏掉的数啊
--测试准备
drop table test;create table test(id integer);
drop sequence seq_index;
create sequence seq_index
INCREMENT BY 1
START WITH 1
maxvalue 100
CYCLE;
insert into test (id)
select seq_index.nextval from dual connect by level <= 100;
select * from test for update ;--删除几条数据,等会查看这几条数据
--执行一条语句,就可以查询出确少的数字了
select rownum id from dual where rownum>=1 and rownum<=100 connect by level <= 100
minus
select id from test
--优化一下,就是这条了
select rownum id
from dual
where rownum >= (select min(id) from test)
connect by level <= (select max(id) from test)
minus
select id from test