Oracle中sequence(序列)使用方法詳解
sequence是Oracle中的序列,可以實現(xiàn)字段的自增或自減效果
Oracle與MySQL、SQL server不同,沒有直接實現(xiàn)字段自增的功能,需要我們使用自增序列去實現(xiàn)
如:
--設置自增序列,名稱為"seq_userinfo",名字任意命名 create sequence seq_userinfo increment by 1 --每次+1 start with 1 --從1開始 nomaxvalue --不限最大值 nominvalue --不限最小值 cache 20; --設置取值緩存數(shù)為20
1、create sequence seq_userinfo
sequence :為關鍵字,表示"序列"
seq_userinfo:為序列的名稱,我們可以任意命名(注意符合命名規(guī)范即可)
2、increment by 1
increment :表示自增
by 1:表示每次變動1個整數(shù)單位
3、start with 1
表示從1開始
start with 200 :表示從200開始自增
4、nomaxvalue
表示不限制最大值,我們也可以手動設置最大值,如:
maxvalue 99999999999 --最大值為99999999999
5、nominvallue
表示不限制最小值
6、cache 20
這個值特別重要
Oracle默認cache=20
cache的作用:當設置cache=20,第一次新增時,會往Oracle服務器的緩存中,存儲20個整數(shù)值,例如,我們第一次新增是從1開始,就會把1到20這個20個數(shù)字存儲到Oracle緩存中,當下一次新增時,直接從緩存中獲取數(shù)字
優(yōu)點:提高了insert時的效率,這里的cache效果與Java中的連接池效果是一致的!
缺點:Oracle服務器會存在不確定因素,從而導致緩存被刷新,從而導致cache還沒使用完,cache就失效了,不能保證自增序列的連續(xù)性
說白了就是:緩存中存儲1到20個數(shù)字,用到10的時候,這一次的cache就被刷新失效了,下一次再新增時,會重新設置緩存(從21開始,再拿20個數(shù)字),從而導致自增的序列出現(xiàn)數(shù)字不連續(xù)的情況
在后端系統(tǒng)中,一般是不需要保證自增序列的連續(xù)性的,因此,設置cache值是必要的
總結
到此這篇關于Oracle中sequence(序列)使用的文章就介紹到這了,更多相關Oracle sequence序列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Linux中Oracle安裝后bash:?sqlplus:?command?not?found問題解決方法
這篇文章主要給大家介紹了關于Linux中Oracle安裝后bash:?sqlplus:?command?not?found問題的解決方法,這是因為你的系統(tǒng)中沒有安裝Oracle數(shù)據(jù)庫客戶端或者其可執(zhí)行文件路徑未配置到,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-06-06
linux系統(tǒng)oracle數(shù)據(jù)庫出現(xiàn)ora12505問題的解決方法
這篇文章主要介紹了linux系統(tǒng)oracle數(shù)據(jù)庫出現(xiàn)ora12505問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-12-12

