最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle創(chuàng)建自增字段--ORACLE SEQUENCE的簡單使用介紹

 更新時(shí)間:2013年03月25日 15:55:07   作者:  
在oracle中sequence就是所謂的序列號,每次取的時(shí)候它會自動(dòng)增加,一般用在需要按序列號排序的地方接下來為大家介紹下Oracle創(chuàng)建自增字段方法感興趣的各位可不要錯(cuò)過了哈
先假設(shè)有這么一個(gè)表:
復(fù)制代碼 代碼如下:

create table S_Depart (
DepartId INT not null,
DepartName NVARCHAR2(40) not null,
DepartOrder INT default 0,
constraint PK_S_DEPART primary key (DepartId)
);

在oracle中sequence就是所謂的序列號,每次取的時(shí)候它會自動(dòng)增加,一般用在需要按序列號排序的地方。
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE權(quán)限,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加幾個(gè)
START WITH 1 -- 從1開始計(jì)數(shù)
NOMAXvalue -- 不設(shè)置最大值
NOCYCLE -- 一直累加,不循環(huán)
CACHE 10; --設(shè)置緩存cache個(gè)序列,如果系統(tǒng)down掉了或者其它情況將會導(dǎo)致序列不連續(xù),也可以設(shè)置為---------NOCACHE
針對S_Depart創(chuàng)建的sequence如下:
復(fù)制代碼 代碼如下:

create sequence S_S_DEPART
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache;

一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的當(dāng)前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL
可以使用sequence的地方:
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的valueS中
- UPDATE 的 SET中
可以看如下例子:
復(fù)制代碼 代碼如下:

insert into S_Depart(departId,Departname,Departorder)values(S_S_Depart.Nextval,'12345',1);

SELECT empseq.currval FROM DUAL;
但是要注意的是:
- 第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會自動(dòng)增加你定義的INCREMENT BY值,然后返回增加后的值。CURRVAL 總是返回當(dāng)前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否則會出錯(cuò)。一次NEXTVAL會增加一次 SEQUENCE的值,所以如果你在同一個(gè)語句里面使用多個(gè)NEXTVAL,其值就是不一樣的。明白?
- 如果指定CACHE值,ORACLE就可以預(yù)先在內(nèi)存里面放置一些sequence,這樣存取的快些。cache里面的取完后,oracle自動(dòng)再取一組到cache。 使用cache或許會跳號, 比如數(shù)據(jù)庫突然不正常down掉(shutdown abort),cache中的sequence就會丟失. 所以可以在create sequence的時(shí)候用nocache防止這種情況。
2、Alter Sequence
你或者是該sequence的owner,或者有ALTER ANY SEQUENCE 權(quán)限才能改動(dòng)sequence. 可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須 drop sequence 再 re-create .
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXvalue 10000
CYCLE -- 到10000后從頭開始
NOCACHE ;
影響Sequence的初始化參數(shù):
SEQUENCE_CACHE_ENTRIES =設(shè)置能同時(shí)被cache的sequence數(shù)目。
可以很簡單的Drop Sequence
DROP SEQUENCE order_seq;
一個(gè)簡單的例子
復(fù)制代碼 代碼如下:

create sequence SEQ_ID
minvalue 1
maxvalue 99999999
start with 1
increment by 1
nocache
order;

建解發(fā)器代碼為
復(fù)制代碼 代碼如下:

create or replace trigger tri_test_id
before insert on S_Depart --S_Depart 是表名
for each row
declare
nextid number;
begin
IF :new.DepartId IS NULLor :new.DepartId=0 THEN --DepartId是列名
select SEQ_ID.nextval --SEQ_ID正是剛才創(chuàng)建的
into nextid
from sys.dual;
:new.DepartId:=nextid;
end if;
end tri_test_id;

OK,上面的代碼就可以實(shí)現(xiàn)自動(dòng)遞增的功能了。

相關(guān)文章

  • oracle數(shù)據(jù)庫如何使用exp和imp命令導(dǎo)入導(dǎo)出數(shù)據(jù)

    oracle數(shù)據(jù)庫如何使用exp和imp命令導(dǎo)入導(dǎo)出數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫如何使用exp和imp命令導(dǎo)入導(dǎo)出數(shù)據(jù)的相關(guān)資料,Oracle的EXP(Export)和 IMP(Import)是兩個(gè)非常重要的命令,它們用于數(shù)據(jù)庫的備份和恢復(fù),需要的朋友可以參考下
    2024-07-07
  • 利用windows任務(wù)計(jì)劃實(shí)現(xiàn)oracle的定期備份

    利用windows任務(wù)計(jì)劃實(shí)現(xiàn)oracle的定期備份

    我們搞數(shù)據(jù)庫管理系統(tǒng)的經(jīng)常會遇到數(shù)據(jù)庫定期自動(dòng)備份的問題,有各種各樣的方法,這里介紹一種利用windows任務(wù)計(jì)劃實(shí)現(xiàn)oracle定期備份的方法供大家分享。
    2009-08-08
  • Oracle rac模式下undo表空間爆滿的解決方案

    Oracle rac模式下undo表空間爆滿的解決方案

    Oracle數(shù)據(jù)庫中的Undo表空間是用于存儲事務(wù)回滾信息的特殊表空間,它記錄了數(shù)據(jù)庫中執(zhí)行的所有未提交事務(wù)的歷史信息,以便在需要時(shí)進(jìn)行回滾或恢復(fù)操作,在本文中,我們將深入探討Oracle rac模式下undo表空間爆滿的解決方案,需要的朋友可以參考下
    2024-09-09
  • 使用MySQL語句來查詢Apache服務(wù)器日志的方法

    使用MySQL語句來查詢Apache服務(wù)器日志的方法

    這篇文章主要介紹了使用MySQL語句來查詢Apache服務(wù)器日志的方法,五個(gè)實(shí)例均基于Linux系統(tǒng)進(jìn)行演示,需要的朋友可以參考下
    2015-06-06
  • Oracle數(shù)據(jù)庫刪除表空間后磁盤空間不釋放的問題及解決

    Oracle數(shù)據(jù)庫刪除表空間后磁盤空間不釋放的問題及解決

    這篇文章主要介紹了Oracle數(shù)據(jù)庫刪除表空間后磁盤空間不釋放的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Oracle11g調(diào)整SGA方法詳解

    Oracle11g調(diào)整SGA方法詳解

    這篇文章主要介紹了Oracle11gSGA調(diào)整方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Oracle中行列轉(zhuǎn)換有哪些方法

    Oracle中行列轉(zhuǎn)換有哪些方法

    這篇文章主要給大家介紹了關(guān)于Oracle中行列轉(zhuǎn)換有哪些方法的相關(guān)資料,最近在工作中遇到了涉及到數(shù)據(jù)庫行列之間相互轉(zhuǎn)換的問題,所以這里給大家總結(jié)介紹下,需要的朋友可以參考下
    2023-08-08
  • Oracle 數(shù)據(jù)庫操作類

    Oracle 數(shù)據(jù)庫操作類

    我有對Oracle最基本的數(shù)據(jù)庫操作做了最為簡單的歸類,希望可以對后來者有所參考。另外,這個(gè)類需要有日志記錄類(日志記錄在Xml文檔中),我會在后面的文中在貼出來。
    2009-08-08
  • Oracle除去數(shù)據(jù)中的換行符以免讀取出現(xiàn)問題

    Oracle除去數(shù)據(jù)中的換行符以免讀取出現(xiàn)問題

    將整條數(shù)據(jù)取出,并用特殊符號分割,如果數(shù)據(jù)出現(xiàn)換行的情況,那么讀取時(shí)就有問題,這時(shí)就可以采用下面的方法來去除
    2014-07-07
  • Oracle歸檔日志文件(查看、配置、刪除)

    Oracle歸檔日志文件(查看、配置、刪除)

    歸檔日志是非活動(dòng)的重做日志備份.通過使用歸檔日志,可以保留所有重做歷史記錄,本文主要介紹了Oracle歸檔日志文件(查看、配置、刪除),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12

最新評論

循化| 凉城县| 武宣县| 武义县| 尼木县| 鹿泉市| 天峨县| 宜州市| 边坝县| 西昌市| 芒康县| 拜城县| 万全县| 若羌县| 宕昌县| 巴林左旗| 濮阳市| 浦县| 堆龙德庆县| 英吉沙县| 临夏市| 仁化县| 寻甸| 八宿县| 全南县| 北票市| 车险| 锡林浩特市| 涪陵区| 奉节县| 利辛县| 博爱县| 司法| 盱眙县| 吉木乃县| 咸宁市| 东乌珠穆沁旗| 宁远县| 卢湾区| 堆龙德庆县| 蛟河市|