Sequence在Oracle中的使用
阿新 • • 發佈:2018-05-24
board 自動 clipboard oar sta tar 效率 丟失 每次
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插入主鍵值。
Sequence在Oracle中的使用