oracle找出sequence漏掉的數字

2021-07-03 23:52:58 字數 781 閱讀 8864

比如有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

Oracle中自動獲取序列sequence用法

oracle中沒有自增型別的字段的,所以通常情況下需要定義乙個sequence來作為自動增長型別欄位的資料。於是記錄了一些關於oracle sequence的資料,已備查用 oracle中的序列 sequence 1 如何定義乙個序列 僅向前的數字變數 和sql中的自動編號有點像 identity ...

Oracle中如何建立使用SEQUENCES

oracle中sequences的使用 oracle提供了sequence物件,由系統提供自增長的序列號,通常用於生成資料庫資料記錄的自增長主鍵或序號的地方.下面介紹一下關於sequence 的生成,修改,刪除等常用的操作 1.建立 sequence 使用如下命令新建sequence 使用者需要有c...

Oracle中sequenc和觸發器

oracle中的sequence即序列號,在取的時候會隨著規定增長。比如1個由1開始,每次增長1的序列號。create trigger seq user1 start with 1 increment by 1 序列號,通常被我們用於作為自動增長的id號進行使用。對於乙個user1 id,usern...