使用oracle數(shù)據(jù)庫中的關(guān)鍵字sequence來實現(xiàn)目的。
創(chuàng)新互聯(lián)公司專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、臨滄網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為臨滄等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
//創(chuàng)建mySeq
create sequence mySeq
start with 1
increment by 2
maxvalue 40
minvalue 1
cycle
//創(chuàng)建用戶表
create table USER
(
Id int,
CompName varchar2(20)
)
插入語句可以這樣寫:
insert into USER values(mySeq.nextVal,'AA')
這樣的話每次插入的ID就是自動遞增的
擴(kuò)展資料:
sequence用法:
create sequence 序列名稱
start with 起始數(shù)
increment by 增長量
[maxvalue 值]
[minvalue 值]
[cycle 當(dāng)?shù)竭_(dá)最大值的時候,將繼續(xù)從頭開始]
[Nocycle -- 一直累加,不循環(huán)]
[Cache ]
參考資料:百度百科-oraclesequence
1.先建一個序列:
--?Create?sequence?
create?sequence?auto_id
minvalue?1
maxvalue?9999999999999
start?with?1
increment?by?1
cache?10;
2.創(chuàng)建觸發(fā)器:
create?or?replace?trigger?auto_col_trigger
before?insert?on?auto_tab
for?each?row
declare
v_id?number?:=?0;
begin
select?auto_id.nextval?into?v_id?from?dual;
:new.id?:=?v_id;
end;
我隨便寫的,表名和字段名改一下就行了。
hibernate的配置文件里不是有主鍵生成策略的配置嗎?可以手動指定,也可以自動生成的。
hibernate主鍵生成機(jī)制
1) assigned
主鍵由外部程序負(fù)責(zé)生成,無需Hibernate參與。
2) hilo
通過hi/lo 算法實現(xiàn)的主鍵生成機(jī)制,需要額外的數(shù)據(jù)庫表保存主
鍵生成歷史狀態(tài)。
3) seqhilo
與hilo 類似,通過hi/lo 算法實現(xiàn)的主鍵生成機(jī)制,只是主鍵歷史
狀態(tài)保存在Sequence中,適用于支持Sequence的數(shù)據(jù)庫,如Oracle。
4) increment
主鍵按數(shù)值順序遞增。此方式的實現(xiàn)機(jī)制為在當(dāng)前應(yīng)用實例中維持
一個變量,以保存著當(dāng)前的最大值,之后每次需要生成主鍵的時候
將此值加1作為主鍵。
這種方式可能產(chǎn)生的問題是:如果當(dāng)前有多個實例訪問同一個數(shù)據(jù)
庫,那么由于各個實例各自維護(hù)主鍵狀態(tài),不同實例可能生成同樣
的主鍵,從而造成主鍵重復(fù)異常。因此,如果同一數(shù)據(jù)庫有多個實
例訪問,此方式必須避免使用。
5) identity
采用數(shù)據(jù)庫提供的主鍵生成機(jī)制。如DB2、SQL Server、MySQL
中的主鍵生成機(jī)制。
6) sequence
采用數(shù)據(jù)庫提供的sequence 機(jī)制生成主鍵。如Oralce 中的
Sequence。
7) native
由Hibernate根據(jù)底層數(shù)據(jù)庫自行判斷采用identity、hilo、sequence
其中一種作為主鍵生成方式。
8) uuid.hex
由Hibernate基于128 位唯一值產(chǎn)生算法生成16 進(jìn)制數(shù)值(編碼后
以長度32 的字符串表示)作為主鍵。
9) uuid.string
與uuid.hex 類似,只是生成的主鍵未進(jìn)行編碼(長度16)。在某些
數(shù)據(jù)庫中可能出現(xiàn)問題(如PostgreSQL)。
10) foreign
使用外部表的字段作為主鍵。
一般而言,利用uuid.hex方式生成主鍵將提供最好的性能和數(shù)據(jù)庫平臺適
應(yīng)性。
當(dāng)前標(biāo)題:oracle主鍵怎么生成,oracle主鍵序列生成
網(wǎng)頁URL:http://sd-ha.com/article30/hcocpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站設(shè)計公司、電子商務(wù)、服務(wù)器托管、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)