建立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...