oracle自增序列及其觸發器

2021-10-09 16:15:23 字數 1158 閱讀 8550

遷移資料庫mysql–>oracle,oracle中沒有mysql中的自增功能,使用序列及觸發器實現

create sequence userid_sequence --序列名 (userid_sequence 為序列名,隨便取名)­

increment by 1 --每次增加1 ­

start with 1 --從1開始 ­

nomaxvalue --沒有最大值 ­

nocache --沒有快取序列­ 或者 cache 20 快取 20個

nocycle --不迴圈

使用序列插入資料:

insert into sys_user values(userid_sequence.nextval , 『王小明』,『小明』,…)

或者建立觸發器,每次插入資料時可將對應自增字段置為空,觸發器會自動填充相應字段:

create or replace trigger userid_increase --(userid_increase) 觸發器名稱

before insert

on sys_user – (sys_user)表名稱

for each row – for each row : 對錶的每一行觸發器執行一次

begin

select userid_sequence.nextval into :new.user_id from dual; – (new.user_id)new 等於新插入的一行, user_id 是表中要實現自增的主鍵列

end;

查詢:select userid_sequence.currval from dual; --查詢當前的序列值

select userid_sequence.nextval from dual; --查詢當前自增後的序列

select * from dba_sequences where sequence_owner=『使用者名稱』 --查詢所有序列

更改:alter sequence userid_sequence

increment by 1

start with 100

nomaxvalue;

刪除:drop sequence userid_sequence;

刪除觸發器:

drop trigger userid_increase

本片參考的文獻及網頁

oracle 自增序列與觸發器

1.檢視某張表下的觸發器資訊 select from all triggers where table name 表名 2.檢視某自增序列的資訊 select from user sequences where sequence name 自增序列名稱 3.檢視自增序列下次自增的值 select 自...

Oracle資料寫入自增 觸發器

oracle不能像mysql和sql server那樣設定主鍵自增,在寫入資料的時候需要用 1 序列 觸發器 的方式使資料表的一列或多列實現自增。兩者可在檢視中建立,也可以使用sql語句建立。2 或者只建立序列,插入時之江將序列.nextval 作為值插入。1 建立序列 dual 的sql語句 cr...

oracle 觸發器trigger(主鍵自增長)

觸發器我們也可以認為是儲存過程,是一種特殊的儲存過程。儲存過程 有輸入引數和輸出引數,定義之後需要呼叫 觸發器 沒有輸入引數和輸出引數,定義之後無需呼叫,在適當的時候會自動執行。資料的新增 修改 刪除 操作的時候 儲存過程 觸發器create proc proc name 宣告輸入引數和輸出引數 a...