Oracle 序列詳解 建立 修改 刪除和使用

2021-10-01 21:51:14 字數 1838 閱讀 7782

序列(sequence)是一種資料庫物件,可以為表中的行自動生成序列號,利用它可生成唯一的整數,產生一組等間隔的數值(型別為數字number),主要用於生成唯

一、連續的序號。序列是一種共享式的物件,多個使用者可以共同使用序列中的序號。一般序列所生成的整數通常可以用來填充數字型別的主鍵列,這樣當向表中插入資料時,主鍵列就使用了序列中的序號,從而保證主鍵的列值不會重複。用這種方法可以替代在應用程式中產生主鍵值的方法,可以獲得更可靠的主鍵值。

乙個序列的是由特殊的oracle程式自動生成的,因此避免了在應用層實現序列而引起的效能瓶頸。序列號是乙個oracle整數,最多可以有38個數字。建立序列時,需要定義的資訊包括序列名、上公升或下降、序列號之間的間距和其它資訊。

語法如下

create sequence sequence_name

[start

with start_num]

[increment by increment_num]

;

其中各語法選項含義如下:

使用預設值建立乙個序列s_seq1

建立序列s_seq2,開始值為100,增幅是2,最大值是1000,序列中的序號不在記憶體中進行緩衝

序列的資訊可以從資料字典user_sequences中獲得,如下:

使用select語句檢視序列s_seq2的最小值、最大值、增幅等資訊:

alter sequence語句可以用來修改序列。在修改序列時,可以修改的序列內容有如下限制:

==修改序列s_seq2的最小值、最大值、增幅,並使其中的序號可迴圈使用:

刪除序列s_seq1

對使用者而言,序列中的可用資源是其中包含的序號。使用者可以通過select命令獲得可用的序號,也可以將序號應用於dml語句和表示式中。如果要使用其他使用者的序列號,則必須具有對該序列的select許可權。

序列提供了兩個偽列,即nextval和currval,用來訪問序列中的序號

currval:返回序列的當前值。

需要注意的是,在第一次引用currval之前,必須引用過乙個序列的nextval,用於初始化序列的值,否則會出現錯誤提示。

使用序列s_seq1為表sys_user表插入一條資料,**如下:

Oracle 序列的建立 使用 修改 刪除

oracle序列 概念 所謂序列,在oracle中就是乙個物件,這個物件用來提供乙個有序的資料列,這個有序的資料列的值都不重複。1.序列可以自動生成唯一值 2.是乙個可以被共享的物件 3.典型的用來生成主鍵值的乙個物件 4.可以替代應用程式 5.當sequence的值存放在快取中時可以提高訪問效率。...

Oracle(建立 修改 刪除表)

根據rowid獲取某一元組 2 表的建立 1 方式一 create table 2 方式二 當as後面的語句能夠查詢到資料的時候,不僅建立了表的結構而且查詢到的資料也會自動新增到新建立的表內部 查詢表中是否有資料 當as後面的語句不能查詢到資料的時候,只建立表的結構,不會向表中新增資料 3 修改表 ...

oracle 建立表約束,修改,刪除

sql create table goods goodsid char 8 primary key 主鍵 2goodsname varchar2 30 3unitprice number 10 2 check unitprice 0 單價大於04 category varchar2 8 5provi...