CREATE SEQUENCE [user
[increment by n]
[start with n]
[maxvalue n | nomaxvalue]
[minvalue n | nominvalue];
INCREMENT BY
START WITH
MAXVALUE
NOMAXVALUE
MINVALUE
NOMINVALUE
ALTERSEQUENCE [user
[INCREMENT BY n]
[MAXVALUE n| NOMAXVALUE ]
[MINVALUE n | NOMINVALUE]
修改序列可以
? 修改未來序列值的增量
? 設置或撤消最小值或最大值
? 改變緩沖序列的數目
? 指定序列號是否是有序
DROP SEQUENCE [user
從數據庫中刪除一序列
創建一個序列號的語句
CREATE SEQUENCE EXAM_NO_SEQ
START WITH
MAXVALUE
MINVALUE
CYCLE
CACHE
NOORDER;
PB中取序列號的用法
string v_exam_no
//獲取申請序號
SELECT exam_no_seq
using ghis_database;
if ghis_database
messagebox(
return
end if
其他版本
oracle中沒有自增類型的字段的
於是記錄了一些關於oracle sequence的資料
Oracle中的序列(sequence)
僅向前的數字變量(和SQL中的自動編號有點像 identity(
格式:
create sequence <序列名稱>
start with <起始數>
increment by <增長量>
[maxvalue 值]
[minvalue 值]
[cycle 當到達最大值的時候
[Nocycle
[Cache ]
注意
第一次NEXTVAL返回的是初始值;隨後的NEXTVAL會自動增加你定義的INCREMENT BY值
如果指定CACHE值
example:
create sequence mySeq
start with
increment by
maxvalue
minvalue
cycle
currval
nextVal
example:
select mySeq
注意一點:currval只有當nextVal執行一次以後才可以用
在創建表的時候
具體例子:
create table 公司基本信息表
(
ComPID int
CompName varchar
)
insert into 公司基本信息表 values(mySeq
修改前提是sequence 的owner
Alter sequence 的例子
ALTER SEQUENCE emp_sequence
INCREMENT BY
MAXvalue
CYCLE
NOCACHE
影響Sequence的初始化參數
SEQUENCE_CACHE_ENTRIES =設置能同時被cache的sequence數目
也可以這樣
alter sequence mySeq maxvalue
注意
查看
select * from user_sequences
如何刪除:
drop sequence 序列名稱
sequence不屬於某個表
其實在創建了sequence後
From:http://tw.wingwit.com/Article/program/Oracle/201311/17518.html