欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

oracle序列怎么連續(xù),oracle 序列重復(fù)

oracle sequence如何循環(huán)

你這個(gè)其實(shí)挺復(fù)雜的,要建立一系列的東西來(lái)滿(mǎn)足你這個(gè)需求

創(chuàng)新互聯(lián)建站主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)方山,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220

給你做個(gè)實(shí)驗(yàn)吧

先建立一個(gè)表

create?table?test

(id?varchar2(20)?not?null?primary?key?,

name?varchar2(100));

創(chuàng)建一個(gè)序列

create?sequence?seqTest?

increment?by?1?

start?with?1?

maxvalue?999

nocycle?

cache?10;

創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,這個(gè)很重要,每天半夜12點(diǎn)執(zhí)行一次,這個(gè)主要是把序列重新置0用的,然后還需要定義一個(gè)job來(lái)調(diào)用這個(gè)存儲(chǔ)過(guò)程

create?or?replace?procedure?p_seq

as

n?number(10);

v_sql?varchar2(100);

begin

select?seqTest.nextval?into?n?from?dual;

n:=-(n-1);

v_sql:='alter?sequence?seqTest?increment?by'||?n;

execute?immediate?v_sql;

select?seqTest.nextval?into?n?from?dual;

v_sql:='alter?sequence?seqTest?increment?by?1';

execute?immediate?v_sql;

end;

然后創(chuàng)建一個(gè)觸發(fā)器

create?or?replace?trigger?t_test???????

before?insert?on?test???????

for?each?row???????

begin???????

select?to_char(sysdate,'yyyymmdd')||'_'||lpad(seqTest.nextval,3,0)?into?:new.id?from?dual;?????

end?;

存儲(chǔ)過(guò)程我沒(méi)測(cè)試,但是編譯能過(guò)去

現(xiàn)在做個(gè)試驗(yàn)

執(zhí)行這樣一個(gè)語(yǔ)句

insert?into?test(name)?values?('aa');

然后你檢查下數(shù)據(jù),然后繼續(xù)插入再看看

select?*?from?test;

如何使用Oracle序列

如何使用Oracle序列:

Oracle序列(sequence)是一種數(shù)據(jù)庫(kù)項(xiàng),能夠生成一個(gè)整數(shù)序列。通常用于填充數(shù)字類(lèi)型的主鍵列。

1、創(chuàng)建序列:

CREATE SEQUENCE sequence_name

[START WITH start_num]

[INCREMENT BY increment_num]

[{MAXVALUE maximum_num|NOMAXVALUE}]

[{MINVALUE minimum_num|NOMINVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE cache_num|NOCACHE}]

[{ORDER|NOORDER}]

其中:

start_num:序列開(kāi)始整數(shù)

increment_num:每次增加的整數(shù)增量

maximum:序列最大整數(shù)

minimum:序列最小整數(shù)

CYCLE:循環(huán)生成

NOCYCLE:不循環(huán)生成,默認(rèn)值

cache_num:保存在內(nèi)存中的整數(shù)的個(gè)數(shù)

NOCACHE:不緩存任何整數(shù)

例如:

CREATE SEQUENCE seq_test;(默認(rèn)值)

CREATE SEQUENCE seq_test START WITH 1 INCREMENT BY 2;

2、使用序列:

SELECT seq_test.nextval FROM dual;

insert into order_status2 (id) values (seq_test.nextval);

3、修改序列:

ALTER SEQUENCE語(yǔ)句來(lái)修改序列。可以修改的內(nèi)容:

不能修改序列的初值

序列的最小值不能大于當(dāng)前值

序列的最大值不能小于當(dāng)前值

例如:ALTER SEQUENCE seq_test INCREMENT BY 3;

4、刪除序列:

DROP SEQUENCE seq_test;

oracle sequence產(chǎn)生的值不連續(xù)

sequence 本身是不能保證連續(xù)的,譬如你用insert語(yǔ)句插入一個(gè)sequence number,之后在將這個(gè)操作rollback掉,這個(gè)時(shí)候sequence就丟失了1次。

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

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

CREATE SEQUENCE SEQ_POS_ORDER_ONLINE_ID

INCREMENT BY 1

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

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

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

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

在oracle中建表的時(shí)候用的是自動(dòng)編號(hào), 刪除某些記錄后如何恢復(fù)自動(dòng)編號(hào)的序列號(hào)使其連續(xù)而不跳號(hào)?

如果使用了序列,那么這個(gè)跳號(hào)的問(wèn)題只能通過(guò)編程來(lái)解決,否則是解決不了的。Oracle的序列對(duì)象只增加。

可以通過(guò)一個(gè)觸發(fā)器來(lái)實(shí)現(xiàn)序列號(hào)字段的處理,一旦插入新數(shù)據(jù),就根據(jù)掃描的結(jié)果,修改序列號(hào)字段的值為最大值+1,或者某個(gè)值,根據(jù)定義的規(guī)則確定。

有的財(cái)務(wù)系統(tǒng)憑證號(hào)必須連續(xù),當(dāng)中間的某一張憑證刪除后就有這種需求,要求新產(chǎn)生的憑證號(hào)等于刪除的那一張。

如何讓oracle自動(dòng)增長(zhǎng)的序列到一定時(shí)間自動(dòng)重新開(kāi)始增長(zhǎng)?

做一個(gè)存儲(chǔ)過(guò)程,drop此序列,重建序列

做一個(gè)Oracle Job,按照你指定時(shí)間調(diào)度。

本文標(biāo)題:oracle序列怎么連續(xù),oracle 序列重復(fù)
文章出自:http://chinadenli.net/article30/hcposo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)品牌網(wǎng)站建設(shè)軟件開(kāi)發(fā)靜態(tài)網(wǎng)站全網(wǎng)營(yíng)銷(xiāo)推廣網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)