在oracle中,序列是用來產生一系列唯一數字的資料庫物件;序列也就是序號產生器,可以為表中的行自動產生序號,主要的用途是產生主鍵的值,定義序列的使用者必須具有CREATE SEQUENCE權限。
本教學操作環境:Windows10系統、Oracle 11g版、Dell G3電腦。
序列: Sequence 是oracle提供的用於產生一系列唯一數字的資料庫物件。由於oracle中沒有設定自增列的方法,所以我們在oracle資料庫中主要用序列來實現主鍵自增的功能。
在Oracle資料庫中,序列(sequence)其實就是一個序號產生器,它可以為表中的行自動產生序號,主要的用途是產生表的主鍵值。相當於SQL Server和MySQL中的自增欄位。
在SQL Server中可以在定義主鍵時使用identity關鍵字定義,在MySQL中可以在定義主鍵時使用increment關鍵字定義。在Oracle資料庫中要想使用自增字段,必須先定義一個序列(sequence)對象,然後在插入資料時使用【序列對象名.nextval】在主鍵中插入自增資料。
要定義序列,定義序列的使用者必須具有CREATE SEQUENCE權限。在Oracle資料庫中,定義序列的語法如下:
CREATE SEQUENCE 序列名 [START WITH n] [INCREMENT BY n] [MAXVALUE n|NOMAXVALUE] [MINVALUE n|NOMINVALUE] [CACHE n|NOCACHE] [CYCLE|NOCYCLE]
參數說明:
(1)INCREMENT BY:定義序列的步長,n如果為正值,表示序列為遞增序列;n如果為負值,表示序列為遞減序列;如果省略,則預設值為1。
(2)START WITH:定義序列的起始值,如果省略,則預設值為1。
(3)MAXVALUE:定義序列產生器能產生的最大值。選項NOMAXVALUE是預設選項,代表沒有最大值定義,這時對於遞增序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1。
(4)MINVALUE:定義序列產生器能產生的最小值。選項NOMAXVALUE是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是-10的26次方;對於遞增序列,最小值是1。
(5)CYCLE|NOCYCLE:表示當序列產生器的值達到限制值後是否會循環。 CYCLE代表循環,NOCYCLE代表不循環。
(6)CACHE:定義存放序列的記憶體區塊的大小,預設為20。 NOCACHE表示不對序列進行記憶體緩衝。
範例如下:
擴充知識:
##修改序列
格式:ALTER SEQUENCE name [INCREMENT BY n] [MINVALUE n | NO MINVALUE] [MAXVALUE n | NO MAXVALUE ] [MINVALUE n | NO MINVALUE ] [CACHE n ] [CYCLE | NO CYCLE]
Oracle影片教學》
以上是什麼是oracle序列的詳細內容。更多資訊請關注PHP中文網其他相關文章!