筆記 oracle 建立主鍵自增長

2022-05-14 04:31:30 字數 1234 閱讀 8201

筆記

(1) 建立表

create table test(

id number(18,2) primary key, -- 主鍵(unique+not null)

name varchar2(100) not null

(2) 建立序列

create sequence seq_test_id 

minvalue 1  -- 最小值

start with 1  -- 起始值

increment by 1  -- 步長

nomaxvalue  --沒有最大值,若有最大值則需要設定,maxvalue,相對的去掉nomaxvalue

nocache    -- 不快取序列,若需要快取序列的話則改寫成cache [number],number為整數,預設為20;

-- 區別: cache 會在需要用到序列之前先快取一定數量(預設20個)的序列到記憶體中,可以提高insert語句效能,但會存在跳號的問題,比如當快取了20個,還剩5個,突然電腦斷電,重啟後,它會跳過剩下的5個序列,來取值

nocycle;    -- 當達到最大值時,不迴圈使用序列值,迴圈的話則使用cycle

(3) 建立觸發器

create or replace trigger trigger_test_id 

before insert on test for each row when (new.id is null)

begin

select seq_test_id.nextval into :new.id from dual;

end;

儘管建立觸發器很方便,但一般還是用另一種方式:

hibernate的註解的形式更為方便,快捷,在實體類的主鍵列上新增注釋,4步搞定:

a. @id    -- 標註主鍵列

b. @column(name = "id")    -- 標註屬性與列的對應關係

c. @sequencegenerator(name = "seq_test", sequencename = "seq_test_id", allocationsize = 1)     -- 標註sequencename引用資料庫中的序列"seq_test_id",並重命名為"seq_test"

d. @generatedvalue(generator = "sequence_resume_id", strategy = generationtype.sequence)      --- 標註主鍵生成器和生成策略

oracle建立自增長主鍵

建表 使用者必須被顯示的賦予建立觸發器的許可權才可以建立trigger 1 用sys 1234登陸sqlplus 2 在command視窗輸入 grant create any trigger to sprita1 3 提示grant succeeded表明賦予成功 建立自增長主鍵的表 create...

oracle 自增長主鍵

1 首先,你要有一張表!create table example id number 4 not null primary key,name varchar 25 phone varchar 10 address varchar 50 2 然後,你需要乙個自定義的sequence create se...

oracle主鍵自增長

oracle主鍵自增長 1 比較土鱉的方式 定義主鍵number型別,之後每次存資料時候,id為取得此表的max id 之後 1,在存放進去 可以用時間作為主鍵,唯一。2 官方版 使用序列方式,增長主鍵。下面介紹使用過程。建立測試表 t sql sql create table t 2 id num...