日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在Oracle中实现自增加ID的功能

發布時間:2025/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Oracle中实现自增加ID的功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我們經常在設計數據庫的時候用一個系統自動分配的ID來作為我們的主鍵,在SQL SERVER 中有系統自帶的ID自增功能,但是在ORACLE中沒有這樣的功能,我們可以通過采取以下方法實現自動增加ID的功能


在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。
1、CreateSequence
你首先要有CREATESEQUENCE或者CREATEANYSEQUENCE權限,
CREATESEQUENCEemp_sequence
INCREMENTBY1--每次加幾個
STARTWITH1--從1開始計數
NOMAXVALUE--不設置最大值
NOCYCLE--一直累加,不循環
CACHE10;

一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回sequence的當前值
NEXTVAL=增加sequence的值,然后返回sequence值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL

可以使用sequence的地方:
-不包含子查詢、snapshot、VIEW的SELECT語句
-INSERT語句的子查詢中
-NSERT語句的VALUES中
-UPDATE的SET中

可以看如下例子:
INSERTINTOempVALUES
(empseq.nextval,'LEWIS','CLERK',7902,SYSDATE,1200,NULL,20);

SELECTempseq.currvalFROMDUAL;

但是要注意的是:
-第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會自動增加你定義的INCREMENTBY值,然后返回增加后的值。CURRVAL總是返回當前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否則會出錯。一次NEXTVAL會增加一次SEQUENCE的值,所以如果你在同一個語句里面使用多個NEXTVAL,其值就是不一樣的。明白?

-如果指定CACHE值,ORACLE就可以預先在內存里面放置一些sequence,這樣存取的快些。cache里面的取完后,oracle自動再取一組到cache。使用cache或許會跳號,比如數據庫突然不正常down掉(shutdownabort),cache中的sequence就會丟失.所以可以在createsequence的時候用nocache防止這種情況。

2、AlterSequence
你或者是該sequence的owner,或者有ALTERANYSEQUENCE權限才能改動sequence.可以alter除start至以外的所有sequence參數.如果想要改變start值,必須dropsequence再re-create.
Altersequence的例子
ALTERSEQUENCEemp_sequence
INCREMENTBY10
MAXVALUE10000
CYCLE--到10000后從頭開始
NOCACHE;


影響Sequence的初始化參數:
SEQUENCE_CACHE_ENTRIES=設置能同時被cache的sequence數目。

可以很簡單的DropSequence
DROPSEQUENCEorder_seq;


好吧,就到這里。


-------------------------------------------------------------
自增長及觸發器:

如何在Oracle中實現類似自動增加ID的功能?
整理編輯:ChinaASP

我們經常在設計數據庫的時候用一個系統自動分配的ID來作為我們的主鍵,但是在ORACLE中沒有這樣的

功能,我們可以通過采取以下的功能實現自動增加ID的功能
1.首先創建sequence
createsequenceseqmaxincrementby1
2.使用方法
selectseqmax.nextvalIDfromdual
就得到了一個ID
如果把這個語句放在觸發器中,就可以實現和mssql的自動增加ID相同的功能!


-------------------------------------------------------------------------

由macro發布于:2001-04-1314:44


作者:MacroZeng



###建表###

CREATETABLE"SPORTS"."LINEUP"("ID"NUMBERNOTNULL,"TYPE"
NUMBER(3)NOTNULL,"BODY"VARCHAR2(100)NOTNULL,"HITS"NUMBER(
10)DEFAULT0NOTNULL,PRIMARYKEY("ID"))
TABLESPACE"TS_SPORTS"

###建序列###

CREATESEQUENCE"SPORTS"."SPORTS_LINEUP_ID_SEQ"INCREMENTBY1
STARTWITH1MAXVALUE1.0E28MINVALUE1NOCYCLE
CACHE50NOORDER

###建自動更新的觸發器###

CREATEORREPLACETRIGGER"SPORTS"."SPORTS_LINEUP_ID_TRIGGER"
BEFOREINSERT
ON"SPORTS"."LINEUP"
FOREACHROW
DECLARE
next_idNUMBER;
BEGIN
--Getthenextidnumberfromthesequence
SELECTsports_lineup_id_seq.NEXTVAL
INTOnext_id
FROMdual;

--Usethesequencenumberastheprimarykey
--fortherecordbeinginserted.
:new.id:=next_id;
END;

###建保護PRIMARYKEY的觸發器###

CREATEORREPLACETRIGGER"SPORTS"."LINEUP_ID_UPDATE_TRIGGER"
BEFOREUPDATEOF"ID"ON"SPORTS"."LINEUP"
FOREACHROW
BEGIN
RAISE_APPLICATION_ERROR(-20000,
'sports_lineup_id_update_trigger:UpdatesoftheIDfield'
||'arenotallowed.');
END;

轉載于:https://www.cnblogs.com/linpengfeixgu/articles/1595710.html

總結

以上是生活随笔為你收集整理的在Oracle中实现自增加ID的功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品人伦一区二区三区蜜桃网站 | 国产欧美一区二区三区精华液好吗 | 国产毛片一区 | 狠狠干天天爱 | 天堂av成人 | 色戒av| 丝袜脚交国产在线观看 | 国产毛片在线视频 | 欣赏asian国模裸体pics | 嫩草影院一区二区三区 | 国产三级av在线播放 | 亚洲制服在线观看 | 靠逼网站 | 国产小视频在线看 | 日韩视频在线免费观看 | 蜜桃成熟时李丽珍在线观看 | 成年人网站免费 | 欧美一级黄色片 | 国产亚洲欧美在线精品 | 色妞综合 | 色av资源| 在线免费观看www | 久章草在线观看 | 六月丁香婷婷激情 | 国产丝袜精品视频 | www.com毛片 | 日韩干 | 国产一区二区h | 四虎精品久久 | 国产精品久久久久久久久久小说 | 丁香久久 | 日韩va视频 | 91精品免费观看 | 免费在线观看视频 | 亚洲第一色在线 | 精品盗摄一区二区三区 | 播五月婷婷 | 欧美a√ | 99精品久久99久久久久 | 波多野结衣视频在线观看 | 国产精品羞羞答答 | 成人午夜在线观看视频 | 手机成人在线视频 | av在线官网| 不用播放器av| 日韩城人网站 | 深夜的私人秘书 | 视色影院 | 欧美日韩一二三 | 大胸美女吻戏 | 欧美激情一二区 | 97视频在线免费 | 午夜精品久久久久久99热 | 精品中文字幕在线观看 | 九一亚洲精品 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 人人曰| www.av黄色| 日韩在线精品视频 | 777777av| 成年人视频在线看 | 亚洲一区在线免费观看 | 欧美极品少妇xxxxⅹ裸体艺术 | 美女主播福利视频 | 色婷婷天堂 | 欧美成人怡红院 | 黄色电影在线视频 | 国产午夜伦鲁鲁 | 黄色小视频在线免费观看 | av网站大全在线 | 极品探花在线观看 | 亚洲蜜臀av一区二区三区 | 老地方在线观看免费动漫 | 性一交一乱一区二区洋洋av | 久久r| 波多野结衣在线视频免费观看 | 熟女一区二区三区四区 | 日韩在线视频网站 | 成年人网站在线免费观看 | 日韩在线播放中文字幕 | 图书馆的女友动漫在线观看 | 久草观看视频 | 欧美另类z0z变态 | 亚洲精品网站在线播放gif | 黄色片播放器 | 欧洲精品久久久 | 女王人厕视频2ⅴk | 久草av在线播放 | 四虎网址在线观看 | 91啦中文| 亚洲最大成人网站 | 男裸体无遮挡网站 | 亚洲一级片免费看 | 亚洲综合色自拍一区 | 天美麻花果冻视频大全英文版 | 午夜成年视频 | 秋霞一级视频 | 69亚洲乱人伦| 久久久久99|