oracle序列怎么定義 oracle中的序列

數(shù)據(jù)庫中的序列是什么?具體概念?

序列(SEQUENCE)是序列號生成器,可以為表中的行自動生成序列號,產(chǎn)生一組等間隔的數(shù)值(類型為數(shù)字)。其主要的用途是生成表的主鍵值,可以在插入語句中引用,也可以通過查詢檢查當前值,或使序列增至下一個值。創(chuàng)建序列需要CREATE SEQUENCE系統(tǒng)權限。序列的創(chuàng)建語法如下: CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE/ MINVALUE n|NOMAXVALUE}] [{CYCLE|NOCYCLE}] [{CACHE n|NOCACHE}]; INCREMENT BY 用于定義序列的步長,如果省略,則默認為1,如果出現(xiàn)負值,則代表序列的值是按照此步長遞減的。 START WITH 定義序列的初始值(即產(chǎn)生的第一個值),默認為1。 MAXVALUE 定義序列生成器能產(chǎn)生的最大值。選項NOMAXVALUE是默認選項,代表沒有最大值定義,這時對于遞增序列,系統(tǒng)能夠產(chǎn)生的最大值是10的27次方;對于遞減序列,最大值是-1。 MINVALUE定義序列生成器能產(chǎn)生的最小值 ...

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設計制作、成都網(wǎng)站設計與策劃設計,鳳臺網(wǎng)站建設哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設10多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:鳳臺等地區(qū)。鳳臺做網(wǎng)站價格咨詢:18982081108

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

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

CREATE SEQUENCE SEQ_POS_ORDER_ONLINE_ID

INCREMENT BY 1

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

NOMAXvalue -- 不設置最大值 或 MAXVALUE 10 --設置最大值 10

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

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

oracle 序列怎么寫?

oracle創(chuàng)建序列基本語法:

CREATE?SEQUENCE?sequence??//創(chuàng)建序列名稱

[INCREMENT?BY?n]??//遞增的序列值是n?如果n是正數(shù)就遞增,如果是負數(shù)就遞減?默認是1

[START?WITH?n]????//開始的值,遞增默認是minvalue?遞減是maxvalue

[{MAXVALUE?n?|?NOMAXVALUE}]?//最大值

[{MINVALUE?n?|?NOMINVALUE}]?//最小值

[{CYCLE?|?NOCYCLE}]?//循環(huán)/不循環(huán)

[{CACHE?n?|?NOCACHE}];//分配并存入到內(nèi)存中

請問oracle中的序列是干什么用的?

序列是一數(shù)據(jù)庫對象,利用它可生成唯一的整數(shù)。一般使用序列自動地生成主碼值。一個序列的值是由特殊的Oracle程序自動生成,因此序列避免了在應用層實現(xiàn)序列而引起的性能瓶頸。

Oracle序列允許同時生成多個序列號,而每一個序列號是唯一的。當一個序列號生成時,序列是遞增,獨立于事務的提交或回滾。允許設計缺省序列,不需指定任何子句。該序列為上升序列,由1開始,增量為1,沒有上限。

具體步驟

1.建立序列命令

CREATE SEQUENCE [user.]sequence_name

[increment by n]

[start with n]

[maxvalue n | nomaxvalue]

[minvalue n | nominvalue]

INCREMENT BY: 指定序列號之間的間隔,該值可為正的或負的整數(shù),但不可為0。序列為升序。忽略該子句時,缺省值為1。

START WITH:指定生成的第一個序列號。在升序時,序列可從比最小值大的值開始,缺省值為序列的最小值。對于降序,序列可由比最大值小的值開始,缺省值為序列的最大值。

MAXVALUE:指定序列可生成的最大值。

NOMAXVALUE:為升序指定最大值為1027,為降序指定最大值為-1。

MINVALUE:指定序列的最小值。

NOMINVALUE:為升序指定最小值為1。為降序指定最小值為-1026。

2.更改序列命令

ALTERSEQUENCE [user.]sequence_name

[INCREMENT BY n]

[MAXVALUE n| NOMAXVALUE ]

[MINVALUE n | NOMINVALUE];

修改序列可以:

修改未來序列值的增量。

設置或撤消最小值或最大值。

改變緩沖序列的數(shù)目。

指定序列號是否是有序。

刪除序列命令

DROP SEQUENCE [user.]sequence_name;

從數(shù)據(jù)庫中刪除一序列。

創(chuàng)建一個序列號的語句:

中國網(wǎng)管聯(lián)盟bitsCN.com

CREATE SEQUENCE EXAM_NO_SEQ

START WITH 1484

MAXVALUE 9999999999

MINVALUE 1

CACHE 20

NOORDER;

PB中取序列號的用法:

string ?v_exam_no

SELECT exam_no_seq.nextval INTO :v_exam_no FROM dual

using ghis_database;

if ghis_database.SQLCODE0 then

messagebox("","取檢查序號出錯")

return

end if

如何使用Oracle序列

如何使用Oracle序列:

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

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:序列開始整數(shù)

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

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

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

CYCLE:循環(huán)生成

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

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

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

例如:

CREATE SEQUENCE seq_test;(默認值)

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語句來修改序列。可以修改的內(nèi)容:

不能修改序列的初值

序列的最小值不能大于當前值

序列的最大值不能小于當前值

例如:ALTER SEQUENCE seq_test INCREMENT BY 3;

4、刪除序列:

DROP SEQUENCE seq_test;

Oracle中序列sequence用法

) 建立序列命令

CREATE SEQUENCE [user ]sequence_name

[increment by n]

[start with n]

[maxvalue n | nomaxvalue]

[minvalue n | nominvalue];

INCREMENT BY 指定序列號之間的間隔 該值可為正的或負的整數(shù) 但不可為 序列為升序 忽略該子句時 缺省值為

START WITH 指定生成的第一個序列號 在升序時 序列可從比最小值大的值開始 缺省值為序列的最小值 對于降序 序列可由比最大值小的值開始 缺省值為序列的最大值

MAXVALUE 指定序列可生成的最大值

NOMAXVALUE 為升序指定最大值為 為降序指定最大值為

MINVALUE 指定序列的最小值

NOMINVALUE 為升序指定最小值為 為降序指定最小值為

) 更改序列命令

ALTERSEQUENCE [user ]sequence_name

[INCREMENT BY n]

[MAXVALUE n| NOMAXVALUE ]

[MINVALUE n | NOMINVALUE]

修改序列可以

? 修改未來序列值的增量

? 設置或撤消最小值或最大值

? 改變緩沖序列的數(shù)目

? 指定序列號是否是有序

) 刪除序列命令

DROP SEQUENCE [user ]sequence_name

從數(shù)據(jù)庫中刪除一序列

創(chuàng)建一個序列號的語句

CREATE SEQUENCE EXAM_NO_SEQ

START WITH

MAXVALUE

MINVALUE

CYCLE

CACHE

NOORDER;

PB中取序列號的用法

string? v_exam_no

//獲取申請序號

SELECT exam_no_seq nextval INTO :v_exam_no FROM dual

using ghis_database;

if ghis_database SQLCODE then

messagebox( 取檢查序號出錯 )

return

end if

其他版本

oracle中沒有自增類型的字段的 所以通常情況下需要定義一個sequence來作為自動增長類型字段的數(shù)據(jù)

于是記錄了一些關于oracle sequence的資料 已備查用!

Oracle中的序列(sequence)

: 如何定義一個序列

僅向前的數(shù)字變量(和SQL中的自動編號有點像 identity( ) )

格式:

create sequence 序列名稱

start with 起始數(shù)

increment by 增長量

[maxvalue 值]

[minvalue 值]

[cycle 當?shù)竭_最大值的時候 將繼續(xù)從頭開始]

[Nocycle 一直累加 不循環(huán)]

[Cache ]

注意

第一次NEXTVAL返回的是初始值;隨后的NEXTVAL會自動增加你定義的INCREMENT BY值 然后返回增加后的值 CURRVAL 總是返回當前SEQUENCE的值 但是在第一次NEXTVAL初始化之后才能使用CURRVAL 否則會出錯 一次NEXTVAL會增加一次SEQUENCE的值

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

example:

create sequence mySeq

start with

increment by

maxvalue

minvalue

cycle

:怎么去取序列數(shù)據(jù):

currval curenvalue

nextVal NextVlaue

example:

select mySeq nextVal from dual

注意一點:currval只有當nextVal執(zhí)行一次以后才可以用

在創(chuàng)建表的時候 可以使用序列

具體例子:

create table 公司基本信息表

(

ComPID int

CompName varchar ( )

)

insert into 公司基本信息表 values(mySeq nextVal AA )

:如何修改序列

修改前提是sequence 的owner 或者有ALTER ANY SEQUENCE 權限才能改動sequence 可以alter除start至以外的所有sequence參數(shù) 如果想要改變start值 必須 drop sequence 再 re create

Alter sequence 的例子

ALTER SEQUENCE emp_sequence

INCREMENT BY

MAXvalue

CYCLE 到 后從頭開始

NOCACHE

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

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

也可以這樣

alter sequence mySeq maxvalue

注意 不能改start with 其他隨便改(設置minvalue值的時候不能大于當前值)

:如何查看刪除某個表空間所有序列

查看

select * from user_sequences

如何刪除:

drop sequence 序列名稱

sequence屬于什么對象

sequence不屬于某個表 也不屬于某個字段 sequence僅僅屬于某個用戶

lishixinzhi/Article/program/Oracle/201311/17518

網(wǎng)站題目:oracle序列怎么定義 oracle中的序列
網(wǎng)站鏈接:http://muchs.cn/article16/hjscgg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設網(wǎng)站建設、網(wǎng)站維護、標簽優(yōu)化網(wǎng)站設計、虛擬主機

廣告

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

成都定制網(wǎng)站網(wǎng)頁設計