oracle 序列的建立與使用

2021-07-30 21:27:34 字數 1402 閱讀 9680

學習了序列,一直沒怎麼有機會用過,做了個簡單的使用練習。

在oracle中,可以使用序列自動生成乙個整數序列,主要用來自動為表中的資料型別的主鍵列提供有序的唯一值,這樣就可以避免在向表中新增資料時,手工指定主鍵值。而且使用手工指定主鍵值這種方式時,由於主鍵值不允許重複,因此它要求操作人員在指定主鍵值時自己判斷新新增的值是否已經存在,這很顯然是不可取的。

(1)建立序列

序列與檢視一樣,並不占用實際的儲存空間,只是在資料字典中儲存它的定義資訊。建立序列需要使用create sequence語句,其語法如下:

create sequence [schema]。sequence_name

[ start with start_number ]

[ increment by increment_number ]

[ minvalue minvalue | nominvalue ]

[ maxvalue maxvalue | nomaxvalue ]

[ cache cache_number | nocache ]

[ cycle | nocycle ]

[ order | noorder ];

注意:cache引數指定記憶體預分配的序列數的個數,預設20個,為了加快訪問速度。

order引數指定是否按照請求次序生成序列號,一般使用序列生成主鍵值時,影響不大。

(2)序列中的兩個偽列

currval:用於獲取序列的當前值,必須再使用nextval一次之後才能使用。

—nextval:用於獲取序列的下乙個值,第一次使用返回的是初始值,向表中的主鍵賦值的時候使用此偽列。

(3)序列舉例 

create table student(

sid number(4) primary key,

sname varchar2(8) not null

);create sequence student_seq

start with 1

increment by 1

nocache nocycle order;

create trigger tr_student

before insert on student

for each row

begin

select student_seq into :new.sid from dual;

end;

sql> insert into student(sname) values('zhang')

已建立 1 行。

sql> insert into student(sname) values('li');

已建立 1 行。

sql> insert into student(sname) values('wang')

已建立 1 行。

Oracle序列使用 建立 刪除 使用

在開始講解oracle序列使用方法之前,先加一點關於oracle client sqlplus的使用,就是如果執行多行語句的話一定要加 才能表示結束,並執行!本篇文章的主題是通過建立oracle序列和觸發器實現表的主鍵自增。1.首先建立序列,oracle序列的語法格式為 create sequenc...

Oracle序列使用 建立 刪除

在開始講解oracle序列使用方法之前,先加一點關於oracle client sqlplus的使用,就是如果執行多行語句的話一定要加 才能表示結束,並執行!本篇文章的主題是通過建立oracle序列和觸發器實現表的主鍵自增。1.首先建立序列,oracle序列的語法格式為 create sequenc...

Oracle序列使用 建立 刪除

在開始講解oracle序列使用方法之前,先加一點關於oracle client sqlplus的使用,就是如果執行多行語句的話一定要加 才能表示結束,並執行!本篇文章的主題是通過建立oracle序列和觸發器實現表的主鍵自增。1.首先建立序列,oracle序列的語法格式為 create sequenc...