Oracle序列應用舉例

2021-07-24 03:58:43 字數 1351 閱讀 1330

序列是用來生成唯

一、連續的整數的資料庫物件。序列通常用來自動生成主鍵或唯一鍵的值。本篇文章的主題是通過建立oracle序列和觸發器實現表的主鍵自增。

1. 建立序列

oracle序列的語法格式為:

create sequence 序列名

[increment by n]

[start with n]

; 說明:

²  increment by用於定義序列的步長,如果省略,則預設為1,如果出現負值,則代表oracle序列的值是按照此步長遞減的。

²  start with 定義序列的初始值(即產生的第乙個值),預設為1。

²  maxvalue 定義序列生成器能產生的最大值。選項nomaxvalue是預設選項,代表沒有最大值定義,這時對於遞增oracle序列,系統能夠產生的最大值是10的27次方;對於遞減序列,最大值是-1。

²  minvalue定義序列生成器能產生的最小值。選項nomaxvalue是預設選項,代表沒有最小值定義,這時對於遞減序列,系統能夠產生的最小值是?10的26次方;對於遞增序列,最小值是1。

²  cycle和nocycle 表示當序列生成器的值達到限制值後是否迴圈。cycle代表迴圈,nocycle代表不迴圈。如果迴圈,則當遞增序列達到最大值時,迴圈到最小值;對於遞減序列達到最小值時,迴圈到最大值。如果不迴圈,達到限制值後,繼續產生新值就會發生錯誤。

²  cache(緩衝)定義存放序列的記憶體塊的大小,預設為20。nocache表示不對序列進行記憶體緩衝。對序列進行記憶體緩衝,可以改善序列的效能。

2. 刪除序列

刪除oracle序列的語法是:

drop sequence 序列名;

3. 舉列

假設有表test,其主鍵為test_id

1)  建立遞增序列seq_test:

create sequence seq_test

increment by 1

start with 1

minvalue 1 nomaxvalue

nocylce

2)  建立觸發器,當有資料插入表test時,使用oracle序列為其去的遞增的主鍵值

create trigger trg_test before insert on test

for each row

begin

select seq_test.nextval into :new.test_id from dual;

end

Oracle 序列的應用

oracle建立序列,刪除序列,得到序列序列的建立 create sequence seq newsid increment by 1 start with 1 maxvalue 999999999 得到序列的sql語句 select seq newsid.nextval from sys.dual...

Parcelable 應用舉例

首先,自定義物件必須實現parcelable,並且建立static final parcelable.creatorcreator物件 實現createfromparcel和newarray方法 自定義物件為 public static class contact implements parcel...

sed應用舉例

1,sed 3d test.txt 把test.txt中的第三行刪除 2,sed 3a hello world test.txt 在test.txt的第三行後面新增 hello world 這一行 3,sed 3i hello world test.txt 在test.txt的第三行前面面新增 he...