Oracle 實(shí)現(xiàn)類似SQL Server中自增字段的一個(gè)辦法
更新時(shí)間:2009年07月30日 18:45:54 作者:
由于Oracle中沒(méi)有類似SQL Server中的自增字段,所以我們?nèi)绻胍ㄟ^(guò)設(shè)定類似ID性質(zhì)的唯一列的話,需要借助Oracle的sequence,先建立一個(gè)序列,然后在每次插入數(shù)據(jù)的時(shí)候,通過(guò)前觸發(fā)器來(lái)更新ID值,并將序列的序號(hào)加1,這樣的迂回方式來(lái)實(shí)現(xiàn)。
相關(guān)代碼如下:
1. 創(chuàng)建sequence:
CREATE SEQUENCE SEQU_DATA_DATAINFO INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER;
2. 創(chuàng)建觸發(fā)器:
create or replace TRIGGER TRIG_TEST
BEFORE INSERT ON TABLE1
FOR EACH ROW
DECLARE
tmpVar NUMBER;
BEGIN
tmpVar := 0;
Select SEQU_PROC_ASSOCIATEINFO.NextVal into tmpVar from dual;
:new.procid:=tmpVar;
EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;
1. 創(chuàng)建sequence:
復(fù)制代碼 代碼如下:
CREATE SEQUENCE SEQU_DATA_DATAINFO INCREMENT BY 1 START WITH 1 NOCYCLE NOCACHE NOORDER;
2. 創(chuàng)建觸發(fā)器:
復(fù)制代碼 代碼如下:
create or replace TRIGGER TRIG_TEST
BEFORE INSERT ON TABLE1
FOR EACH ROW
DECLARE
tmpVar NUMBER;
BEGIN
tmpVar := 0;
Select SEQU_PROC_ASSOCIATEINFO.NextVal into tmpVar from dual;
:new.procid:=tmpVar;
EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;
您可能感興趣的文章:
- sqlserver2005自動(dòng)創(chuàng)建數(shù)據(jù)表和自動(dòng)添加某個(gè)字段索引
- SQL Server 打開(kāi)或關(guān)閉自增長(zhǎng)
- SqlServer Mysql數(shù)據(jù)庫(kù)修改自增列的值及相應(yīng)問(wèn)題的解決方案
- SQL Server 2008怎樣添加自增列實(shí)現(xiàn)自增序號(hào)
- SQL Server設(shè)置主鍵自增長(zhǎng)列(使用sql語(yǔ)句實(shí)現(xiàn))
- SQL Server修改標(biāo)識(shí)列方法 如自增列的批量化修改
- SQL SERVER 自增列
- SQL Server 中調(diào)整自增字段的當(dāng)前初始值
- SQL Server數(shù)據(jù)表字段自定義自增數(shù)據(jù)格式的方法
相關(guān)文章
inner join和left join之間的區(qū)別詳解
這篇文章主要給大家介紹了關(guān)于inner join和left join之間區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01oracle 層次化查詢(行政區(qū)劃三級(jí)級(jí)聯(lián))
現(xiàn)在將上面的行政區(qū)劃按代碼分為三個(gè)級(jí)別:?。ê笏奈粸?)/市(后兩位為0)/縣,同時(shí)分別標(biāo)出他們的級(jí)別,這樣的話,便于后期根據(jù)不同的級(jí)別查詢。2009-07-07ORACLE應(yīng)用經(jīng)驗(yàn)(1)
ORACLE應(yīng)用經(jīng)驗(yàn)(1)...2007-03-03檢測(cè)oracle數(shù)據(jù)庫(kù)壞塊的方法
這篇文章主要介紹了檢測(cè)oracle數(shù)據(jù)庫(kù)壞塊的方法 的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05oracle數(shù)據(jù)排序后獲取前幾行數(shù)據(jù)的寫(xiě)法(rownum、fetch方式)
項(xiàng)目中用到Oracle分組查詢?nèi)∶拷M排序后的前N條記錄,group?by?只能返回每個(gè)組的單條統(tǒng)計(jì),下面這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)排序后獲取前幾行數(shù)據(jù)的寫(xiě)法(rownum、fetch方式),需要的朋友可以參考下2022-12-12Oracle 創(chuàng)建監(jiān)控賬戶 提高工作效率
有很多Oracle服務(wù)器,需要天天查看TableSpace,比較麻煩了。2009-10-10Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Oracle sql批量插入多條數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07