Oracle中sequence(序列)使用方法詳解
sequence是Oracle中的序列,可以實(shí)現(xiàn)字段的自增或自減效果
Oracle與MySQL、SQL server不同,沒(méi)有直接實(shí)現(xiàn)字段自增的功能,需要我們使用自增序列去實(shí)現(xiàn)
如:
--設(shè)置自增序列,名稱為"seq_userinfo",名字任意命名 create sequence seq_userinfo increment by 1 --每次+1 start with 1 --從1開(kāi)始 nomaxvalue --不限最大值 nominvalue --不限最小值 cache 20; --設(shè)置取值緩存數(shù)為20
1、create sequence seq_userinfo
sequence :為關(guān)鍵字,表示"序列"
seq_userinfo:為序列的名稱,我們可以任意命名(注意符合命名規(guī)范即可)
2、increment by 1
increment :表示自增
by 1:表示每次變動(dòng)1個(gè)整數(shù)單位
3、start with 1
表示從1開(kāi)始
start with 200 :表示從200開(kāi)始自增
4、nomaxvalue
表示不限制最大值,我們也可以手動(dòng)設(shè)置最大值,如:
maxvalue 99999999999 --最大值為99999999999
5、nominvallue
表示不限制最小值
6、cache 20
這個(gè)值特別重要
Oracle默認(rèn)cache=20
cache的作用:當(dāng)設(shè)置cache=20,第一次新增時(shí),會(huì)往Oracle服務(wù)器的緩存中,存儲(chǔ)20個(gè)整數(shù)值,例如,我們第一次新增是從1開(kāi)始,就會(huì)把1到20這個(gè)20個(gè)數(shù)字存儲(chǔ)到Oracle緩存中,當(dāng)下一次新增時(shí),直接從緩存中獲取數(shù)字
優(yōu)點(diǎn):提高了insert時(shí)的效率,這里的cache效果與Java中的連接池效果是一致的!
缺點(diǎn):Oracle服務(wù)器會(huì)存在不確定因素,從而導(dǎo)致緩存被刷新,從而導(dǎo)致cache還沒(méi)使用完,cache就失效了,不能保證自增序列的連續(xù)性
說(shuō)白了就是:緩存中存儲(chǔ)1到20個(gè)數(shù)字,用到10的時(shí)候,這一次的cache就被刷新失效了,下一次再新增時(shí),會(huì)重新設(shè)置緩存(從21開(kāi)始,再拿20個(gè)數(shù)字),從而導(dǎo)致自增的序列出現(xiàn)數(shù)字不連續(xù)的情況
在后端系統(tǒng)中,一般是不需要保證自增序列的連續(xù)性的,因此,設(shè)置cache值是必要的
總結(jié)
到此這篇關(guān)于Oracle中sequence(序列)使用的文章就介紹到這了,更多相關(guān)Oracle sequence序列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何刪除Oracle數(shù)據(jù)庫(kù)臨時(shí)表空間
因生產(chǎn)環(huán)境磁盤空間不足,影響了業(yè)務(wù),短時(shí)間內(nèi)無(wú)法擴(kuò)容磁盤,經(jīng)過(guò)排查發(fā)現(xiàn),可以釋放temp臨時(shí)表空間來(lái)臨時(shí)釋放部分空間,本文記錄了如何釋放臨時(shí)表空間的詳細(xì)操作步驟,需要的朋友可以參考下2024-03-03Oracle數(shù)據(jù)庫(kù)中保留小數(shù)點(diǎn)后兩位的問(wèn)題解讀
在Oracle數(shù)據(jù)庫(kù)中,對(duì)數(shù)字和百分比進(jìn)行格式化,以保留兩位小數(shù),主要使用to_char()函數(shù),對(duì)于大數(shù)字如10000000.12,使用to_char(字段名, 'FM99999999999990.00')可確保保留兩位小數(shù)而無(wú)額外空格,對(duì)于百分比如86.63%2024-09-09oracle分區(qū)表之hash分區(qū)表的使用及擴(kuò)展
Hash分區(qū)是Oracle實(shí)現(xiàn)表分區(qū)的三種基本分區(qū)方式之一。對(duì)于那些無(wú)法有效劃分分區(qū)范圍的大表,或者出于某些特殊考慮的設(shè)計(jì),需要使用Hash分區(qū),下面介紹使用方法2014-01-01VMware中l(wèi)inux環(huán)境下oracle安裝圖文教程(一)
剛剛接觸ORACLE的人來(lái)說(shuō),從那里學(xué),如何學(xué),有那些工具可以使用,應(yīng)該執(zhí)行什么操作,一定回感到無(wú)助。所以在學(xué)習(xí)使用ORACLE之前,首先來(lái)安裝一下ORACLE 10g,在來(lái)掌握其基本工具。俗話說(shuō)的好:工欲善其事,必先利其器。作為一個(gè)新手,我們還是先在VMware虛擬機(jī)里安裝吧。2014-08-08oracle中的substr()函數(shù)用法實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于oracle中substr()函數(shù)用法的相關(guān)資料,substr函數(shù)是用于字符串的截取的函數(shù),只適用于string類型,并不適用于字符數(shù)組,需要的朋友可以參考下2023-11-11Oracle 大小寫(xiě)轉(zhuǎn)換函數(shù)實(shí)例詳解
這篇文章主要介紹了Oracle 大小寫(xiě)轉(zhuǎn)換函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06