遷移資料庫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...