oracle怎么增加序列 oracle查詢增加序列

如何給oracle中的表建一個序列

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。

創(chuàng)新互聯(lián)建站服務(wù)項目包括南丹網(wǎng)站建設(shè)、南丹網(wǎng)站制作、南丹網(wǎng)頁制作以及南丹網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,南丹網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到南丹省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

1、createsequence

你首先要有createsequence或者createanysequence權(quán)限,

createsequenceemp_sequence

incrementby1--每次加幾個

startwith1--從1開始計數(shù)

nomaxvalue--不設(shè)置最大值

nocycle--一直累加,不循環(huán)

cache10;

一旦定義了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中

可以看如下例子:

insertintoempvalues

(empseq.nextval,'lewis','clerk',7902,sysdate,1200,null,20);

selectempseq.currvalfromdual;

但是要注意的是:

-第一次nextval返回的是初始值;隨后的nextval會自動增加你定義的incrementby值,然后返回增加后的值。currval總是返回當(dāng)前sequence的值,但是在第一次nextval初始化之后才能使用currval,否則會出錯。一次nextval會增加一次sequence的值,所以如果你在同一個語句里面使用多個nextval,其值就是不一樣的。明白?

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

2、altersequence

你或者是該sequence的owner,或者有alteranysequence權(quán)限才能改動sequence.可以alter除start至以外的所有sequence參數(shù).如果想要改變start值,必須dropsequence再re-create.

altersequence的例子

altersequenceemp_sequence

incrementby10

maxvalue10000

cycle--到10000后從頭開始

nocache;

影響sequence的初始化參數(shù):

sequence_cache_entries=設(shè)置能同時被cache的sequence數(shù)目。

可以很簡單的dropsequence

dropsequenceorder_seq;

Oracle數(shù)據(jù)庫怎么手動添加序列?

創(chuàng)建序列

CREATE SEQUENCE SEQUENCE_NAME

START WITH 10

INCREMENT BY 10

MAXVALUE 2000

MINVALUE 10

NOCYCLE

CACHE 10

?通過序列的偽列來訪問序列的值

–SEQUENCE_NAME.NEXTVAL

返回序列的下一個值

–SEQUENCE_NAME.CURRVAL

返回序列的當(dāng)前值

Oracle數(shù)據(jù)庫如何創(chuàng)建自增序列

oracle的自增需要依靠序列和觸發(fā)器共同實現(xiàn)

比如

先創(chuàng)建一個表

create?table?test(id?int?primary?key,

name?varchar2(10));

創(chuàng)建一個序列

create?sequence?test_seq?

increment?by?1?

start?with?1?

minvalue?1?

maxvalue?9999999999999?

nocache?

order;

觸發(fā)器實現(xiàn)

create?or?replace?trigger?test_trigger

before?insert?on?testfor?each?row

begin?????

select??test_seq.Nextval?into:new.id?from?dual;

end;

然后你試試吧

insert?into?test?(name)?values?('張三');

oracle數(shù)據(jù)庫,怎么給已有很多數(shù)據(jù)的表填充自增序列字段

兩個方法:

1,重新創(chuàng)建一個表,然后創(chuàng)建一個序列,把老數(shù)據(jù)導(dǎo)入新表,刪除老表,修改新表名字為老表

2,直接在原來表上增加一個字段,創(chuàng)建一個序列,通過更新的方式修改老數(shù)據(jù)的這個字段。

具體操作主要是2點,首先是創(chuàng)建一個序列名sequence;

然后是,insert語句的時候:將自增的字段的位置,寫成序列名.nextval。

從創(chuàng)建表開始,然后創(chuàng)建sequence,到insert語句

1.首先創(chuàng)建表

CREATE TABLE "FLOWCAL"."T_USERINFO"

( "C_ID" NUMBER(*,0),

"C_USER" VARCHAR2(20 BYTE),

"C_PASSWORD" VARCHAR2(20 BYTE),

"C_ROLE" VARCHAR2(20 BYTE),

"C_COMMENT1" VARCHAR2(20 BYTE),

"C_COMMENT2" VARCHAR2(20 BYTE)

)

現(xiàn)在想讓C_ID自增一。

2.首先創(chuàng)建一個oracle的sequence,sql語句如下:

create sequence 序列名

increment by 1

start with 1

maxvalue 999999999

cycle;

建立一個最小為1,最大為999999999的一個序列號會自動循環(huán)的序列

下面的sequence,如下:

CREATE SEQUENCE "FLOWCAL"."SEQ_USERINFO"

MINVALUE 0

MAXVALUE 9999999999999999999999999999

INCREMENT BY 1

START WITH 24

CACHE 20

ORDER

CYCLE ;

3.通過序列名.nextval實現(xiàn)插入時,字段的自增一

當(dāng)向表中插入數(shù)據(jù)時,SQL語句寫法如下:

SQL insert into 表名 values(,列1值,列2值,....);

"序列名"可以替換為自己需要的名字.

下面insert語句:

insert into T_USERINFO values(SEQ_USERINFO.NEXTVAL,'111','11','11','11','11')

oracle創(chuàng)建序列的語法

--創(chuàng)建序列的語法 --

CREATE SEQUENCE SEQ_POS_ORDER_ONLINE_ID

INCREMENT BY 1

START WITH 1000000000000042 -- 從1開始計數(shù) 或 MINVALUE 1 或 NOMINVALUE --的設(shè)置最小值 不設(shè)置最小值

NOMAXvalue -- 不設(shè)置最大值 或 MAXVALUE 10 --設(shè)置最大值 10

NOCYCLE -- 一直累加,不循環(huán) 或

CACHE 10; --設(shè)置緩存cache個序列,如果系統(tǒng)down掉了或者其它情況將會導(dǎo)致序列不連續(xù),也可以設(shè)置為---------NOCACHE

文章名稱:oracle怎么增加序列 oracle查詢增加序列
網(wǎng)頁地址:http://muchs.cn/article26/hjspcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、用戶體驗、網(wǎng)站導(dǎo)航、標(biāo)簽優(yōu)化、、域名注冊

廣告

聲明:本網(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)

h5響應(yīng)式網(wǎng)站建設(shè)