Sequence在Oracle中的使用

2022-04-29 17:57:11 字數 1639 閱讀 1124

oracle中,當需要建立乙個自增字段時,需要用到sequence。sequence也可以在mysql中使用,但是有些差別,日後再補充,先把oracle中sequence的基本使用總結一下,方便日後查閱。

1、建立sequence:

[sql]view plain

copy

create sequence seq_on_user  

minvalue 1  

maxvalue 999999999999999999999999999  

start with 1  

increment by 1  

nocache;    

說明:minvalue:序列最小值

maxvalue/nomaxvalue:序列最大值/沒有最大值

start with 1:序列從1開始

increment by 1:每次增加1

cache/nocache:nocache不快取。cache快取。開啟快取,效率高,只是如果資料庫宕機了,快取丟失,會出現序列跳號情況。

2、檢視已有sequence:

[sql]view plain

copy

select * from user_sequences;  

3、刪除指定sequence:

[sql]view plain

copy

drop sequence seq_on_user;  

4、檢視指定sequence的當前值:

兩種方式:

[sql]view plain

copy

select last_number from user_sequences wheresequence_name='seq_on_user';  

[sql]view plain

copy

select seq_on_user.nextval from sys.dual;  

5、建立觸發器使用sequence設定主鍵自動插入。

[sql]view plain

copy

create or replace trigger "seq_on_user_generator" before  

insert on databasename1.t_user for each row  

declare  

mid number,  

begin  

select seq_on_user.nextval into mid from dual;  

:new.id:=mid;  

end  

create trigger seq_on_user_trigger   

before insert on t_user for each row   

begin   

select seq_on_user.nextval into :new.id from dual;   

end seq_on_user_trigger;   

6、**中使用sequence.nextval插入主鍵值。

在oracle中sequence就是所謂的序列號

create sequence 你首先要有 create sequence 或者create any sequence 許可權,create sequence emp sequence increment by 1 每次加幾個 start with 1 從1 開始計數 nomaxvalue 不設定最...

Oracle建立序列 sequence

oracle中的序列號顧名思義就是建立乙個序列號,可以在插入或者更新的時候呼叫,相當於是乙個生成器 建立語法 create sequence myse increment by 1 增長度 start with 1 從 增加,就是說下乙個獲取的值從這個值開始 nomaxvalue 不設定最大值 對應...

oracle 匯出 序列 sequence

方法一 select create sequence username.sequence name minvalue min value maxvalue max value start with last number increment by increment by cache cache s...