oracle主鍵生成方式

2021-05-22 01:41:06 字數 1115 閱讀 3394

oracle主鍵

兩種方法:自增主鍵sequence,sys_guid()生成唯一序列。

一、自增主鍵

建立乙個表

create table test(

nid int primary key,

test1 varchar2(20),

test2 varchar2(20)

)再建乙個序列seq_test

create sequence seq_test

minvalue 1        --最小值     //可選

nomaxvalue        --不設定最大值   //可選

start with 1      --從1開始計數

increment by 1    --每次加1個

nocycle           --一直累加,不迴圈  //可選

nocache;          --不建緩衝區   //可選

觸發器##################

最好再建乙個觸發器來執行它!

//這樣就不用主動調select bjproduct_sequence.nextval as seqno from dual

//或values(bjproduct_sequence.nextval,'wnj123')//可以直接用bjproduct_sequence.nextval

create or replace trigger tg_test

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

begin

select seq_test.nextval into:new.nid from dual;

end;

下面是測試

insert into test(nid,test1) values(6,'aaa')

insert into test(test1) values('bbb')

二、唯一序列

sys_guid() 生成32位的唯一編碼

三、區別 

sequence不適合將它用作並行或者遠端環境裡的pk

sys_guid生成的值的另乙個顯著的不足之處是,管理這些值會比較困難

Oracle中主鍵生成方式

專案中若採用oracle資料庫,則主鍵生成可以有兩種方式,一是用sys guid 二是定義乙個sequence,然後用nextval得到id。1 oracle的定義sequence例子 create sequence seq test minvalue 10000 maxvalue 99999999...

主鍵生成方式

在做搭建ssh專案時,用hibernate反射機制生成pojo以及對映檔案。表主鍵選擇的是uuid,但是程式執行過程中,就報錯了。結果查資料才發現一些問題。大家平時多注意點。在hibernate2.1中,主鍵生成策略中uuid分為uuid.hex和uuid.string,但是從hibernate3....

Hibernate主鍵生成方式

nhibernate主鍵生成方式 hibernate主鍵生成方式 key generator 主鍵產生器 可選項說明 1 assigned 主鍵由外部程式負責生成,無需hibernate參與。2 hilo 通過hi lo 演算法實現的主鍵生成機制,需要額外的資料庫表儲存主 鍵生成歷史狀態。3 seq...