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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Oracle數(shù)據(jù)庫中保留小數(shù)點后兩位的問題解讀
在Oracle數(shù)據(jù)庫中,對數(shù)字和百分比進行格式化,以保留兩位小數(shù),主要使用to_char()函數(shù),對于大數(shù)字如10000000.12,使用to_char(字段名, 'FM99999999999990.00')可確保保留兩位小數(shù)而無額外空格,對于百分比如86.63%2024-09-09oracle分區(qū)表之hash分區(qū)表的使用及擴展
Hash分區(qū)是Oracle實現(xiàn)表分區(qū)的三種基本分區(qū)方式之一。對于那些無法有效劃分分區(qū)范圍的大表,或者出于某些特殊考慮的設計,需要使用Hash分區(qū),下面介紹使用方法2014-01-01VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(一)
剛剛接觸ORACLE的人來說,從那里學,如何學,有那些工具可以使用,應該執(zhí)行什么操作,一定回感到無助。所以在學習使用ORACLE之前,首先來安裝一下ORACLE 10g,在來掌握其基本工具。俗話說的好:工欲善其事,必先利其器。作為一個新手,我們還是先在VMware虛擬機里安裝吧。2014-08-08