找到丢失的序列号

Pra*_*eep 2 sql oracle sequence oracle11g

我想创建一个表来查找丢失的序列号.到达70000后0到70000之间的序列号变为0.在特定的时间段内,我需要找到那些丢失的记录.

mvp*_*mvp 6

此解决方案基于语句,该语句生成从您设置的1到某个限制的所有自然数:

SELECT ROWNUM N FROM dual CONNECT BY LEVEL <= 7000
Run Code Online (Sandbox Code Playgroud)

此解决方案的第二部分是Oracle MINUS运算符(通常称为EXCEPT),旨在减去集合.

换句话说,最终查询是:

SELECT ROWNUM id FROM dual CONNECT BY LEVEL <= 7000
MINUS
SELECT id FROM mytable
Run Code Online (Sandbox Code Playgroud)

20个数字的SQLFiddle演示.