oracle 中序列問題的討論

2021-06-27 19:16:28 字數 1718 閱讀 4192



序列:

序列與檢視一樣,並不占用儲存空間,是用來生成唯一,連續的整數的資料庫物件,在oracle中沒有identity約束,通常就使用序列來自動生成主鍵或唯一鍵的值.序列可以按公升序排列,也可以按降序排列.

建立序列語法:

create sequence 序列名

[start with integer]

[increment by integer]

[maxvalue integer| nomaxvalue]

[minvalue integer| nominvalue]

[cycle | nocycle]

[cache integer | nocache];

注: start with: 指定生成第乙個序列號,對於公升序列,其預設值為序列最小值;對於降序序列,其預設值為序列的最大值

increment by 用於指定序列號之間的間隔,其預設值為1,如果integer為正值,則生成的序列按公升序排列,如果integer為負值,則生成的序列將按降序排列.

maxvalue 指定序列可以生成的最大值.

nomaxvalue 如果指定了nomaxvalue,oracle將公升序序列的最大值設為1027,將降序序列的最大值設為-1.這是預設選項

minvalue 指定序列的最小值, minvalue必須小於或等於start with的值,並且必須小於maxvalue的值

nominvalue 如果指定了nominvalue,oracle將公升序的最小值設為1,或將降序序列的最小值設為-1026.這是預設值.

cycle 指定序列在達到最大值或最小值後,將繼續從頭開始生成值.

nocycle 指定序列在達到最大值或最小值後,將不能再繼續生成值.這是預設選項

cache 使用cache選項可以預先分配一組序列號,並將其保留在記憶體中,這樣可以更快地訪問序列號.當用完快取中的所有序列號.oracle將生成另一組數值,並將其保留在快取中.

nocache 不會加快訪問速度而預先分配序列號,如果在建立序列時忽略了cache和nocache,orcale將預設快取20個序列號

訪問序列語法:  序列中的兩個偽序列 nextval和currval

序列名.nextval 建立序列後第一次使用nextval時,將返回該序列的初始值,以後在引用nextval時,將使用increment by子句的值來增加序列值,並返回這個新值.

例如:

insert into toys (toyed,toyname,toyprice) value(序列名.nextval,』tom』,25)

序列名.currval 返回序列的當前值,即最後一次引用nextval時返回的值

例如:

select 序列名.currval from dual;

更改序列語法:

alter sequence [使用者名稱(模式).]序列名

[increment by integer]

[maxvalue integer| nomaxvalue]

[minvalue integer| nominvalue]

[cycle | nocycle]

[cache integer | nocache];

注:不能修改序列的start with引數,在修改序列時,應注意公升序序列的最小值應小於最大值

刪除序列語法:

drop sequence [使用者名稱(模式).]序列名; 

oracle 編碼問題 討論解決

al32utf8和utf8字符集有什麼區別和聯絡?al32utf8 支援更高版本的unicode 3.1 而且,al32utf8只支援9i以及更高版本的資料庫 utf8既可以作為資料庫字符集,也可以作為國家字符集 9i al32utf8只能作為資料庫字符集 oracle 客戶端執行select fr...

oracle中的序列

oracle中的序列 sequence 的作用相當與sqlserver中的identify作為乙個表的自動增加且唯一標識的列 下面我就用乙個簡單的序列來實現 1.建立序列 create sequence sq sq宣告乙個序列的名稱 start with 1 宣告序列的開始值 immediate b...

oracle中的序列

什麼是序列?序列 可供多個使用者用來產生唯一數值的資料庫物件 自動提供唯一的數值 共享物件 主要用於提供主鍵值 將序列值裝入記憶體可以提高訪問效率 create sequence 語句 createsequence sequence increment by n start with n 建立序列 ...