oracle数据库主键自增序列_oracle数据库ID自增长--序列
什么是序列?在mysql中有一個主鍵自動增長的id,例如:uid number primary key auto_increment;在oracle中序列就是類似于主鍵自動增長,兩者功能是一樣的,只是叫法不同而已。
在oracle中想要實現(xiàn)id自動增長只能用序列來實現(xiàn)。在oracle中,是將序列裝入內(nèi)存,可以提高訪問效率。
1.)序列的創(chuàng)建
create sequence 序列名稱
increment by n 每次增長多少 //系統(tǒng)默認(rèn)值為1.
start with? n從幾開始 //系統(tǒng)默認(rèn)值為1.
[maxvalue? n最大值|nomaxvalue]//NoMaxValue:是系統(tǒng)對序列設(shè)置的默認(rèn)值. 即指定升序序列的最大值為10的27次方.降序序列的最大值為-1.
[minvalue n最小值|nominvalue] //同上
[cycle |nocycle 是否循環(huán)]
[cache? n緩存的數(shù)量|nocache]? //指定要保留在內(nèi)存中整數(shù)的個數(shù).默認(rèn)緩存的格式為20個. 可以緩存的整數(shù)最少為2個. 可以緩存的整數(shù)個數(shù)最多為:Cell(maximum_num—minimum_num)/ABS(increment_num). 注:Cell(序列的最大上限值—最小下限值,)/ABS(每次自增的增量).
例如:create sequence person_pid_seq
increment by 1
start with 1
maxvalue 1000
nocycle
nocache;
可以直接創(chuàng)建,其他的選項全部是默認(rèn)值。例如:create sequence person_pid_seq;
2.)序列的操作
序列創(chuàng)建完成之后,所有的自動增長就都是由我們自己操作了,那么如果操作呢?提供了兩種方式。
2.1 nextval:取得序列的下一個值
2.2 currval:取得當(dāng)前序列的內(nèi)容
注意:currval 需要再nextval調(diào)用之后才能使用
3.)序列的使用
insert into person values(person_pid_seq.nextval,'name,'adress');//一般是利用nextval,讓id保持一直遞增。
4.)序列的刪除
drop sequence person_pid_seq;
5.)序列的注意事項
由于序列是同auto_increment一樣的,所有它是不會回頭的,即使你刪掉了數(shù)據(jù),它的id永遠(yuǎn)不會回到以前,只會一直遞增,例如,你有十條數(shù)據(jù),你刪了第十條,希望下一條的id從10開始,這是不可能的,除非你重新做。
總結(jié)
以上是生活随笔為你收集整理的oracle数据库主键自增序列_oracle数据库ID自增长--序列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: ubuntu8.10下mplayer+w
 - 下一篇: 蜂鸣器驱动电路