oracle 實現字段自動增長

2021-10-23 13:45:50 字數 1347 閱讀 1115

建立sequence

create sequence sequencename 

increment by 1 -- 每次加幾個

minvalue 10000 --設定最小值

maxvalue 99999 --設定最大值

--nomaxvalue -- 不設定最大值

start with 1 -- 從1開始計數

nocycle -- 一直累加,不迴圈

--cycle -- 迴圈

nocache -- 設定不快取

--cache 10; --設定快取cache個序列,如果系統down掉了或者其它情況將會導致序列不連續,也可以設定為nocache

例子

create sequence test_6

minvalue 100000

maxvalue 999999

nocache

nocycle

start with 100000

increment by 1

刪除序列

drop sequence 序列名稱;
觸發器建立

create or replace trigger 觸發器名稱

before insert on 表名

for each row

declare

nextid number; --定義屬性

begin

if :new.自動增長欄位名 is null then

select 序列名.nextval

into nextid

from dual;

:new.自動增長欄位名:=nextid;

end if;

end

例子:

create trigger trigger_test

before insert on users_test for each row

declare

nextid number;

begin

if :new.mid is null /*or :new.mid=0*/ then

select test_6.nextval

into nextid

/*into new.mid*/

from dual;

:new.mid:=nextid;

end if;

end

刪除觸發器

drop trigger 觸發器名稱;

oracle欄位自動增長設定

oracle資料庫的字段無法在建表的時候通過屬性設定自動增長,因此主鍵多為生成的uuid或guid,如果需要設定自動增長的主鍵,則需要借助觸發器來實現。sequences,可翻譯成一組某某事務,在oracle中sequences通常配合觸發器來使用,這裡我們把它翻譯成序列。首先建立sequences...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。sql create table createtableuserinfo id number not null...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。create table create table userinfo id number not null u...