Oracle 實現(xiàn)類似SQL Server中自增字段的一個辦法
更新時間:2009年07月30日 18:45:54 作者:
由于Oracle中沒有類似SQL Server中的自增字段,所以我們如果想要通過設定類似ID性質的唯一列的話,需要借助Oracle的sequence,先建立一個序列,然后在每次插入數(shù)據(jù)的時候,通過前觸發(fā)器來更新ID值,并將序列的序號加1,這樣的迂回方式來實現(xià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:
復制代碼 代碼如下:
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;
您可能感興趣的文章:
相關文章
inner join和left join之間的區(qū)別詳解
這篇文章主要給大家介紹了關于inner join和left join之間區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01oracle 層次化查詢(行政區(qū)劃三級級聯(lián))
現(xiàn)在將上面的行政區(qū)劃按代碼分為三個級別:省(后四位為0)/市(后兩位為0)/縣,同時分別標出他們的級別,這樣的話,便于后期根據(jù)不同的級別查詢。2009-07-07oracle數(shù)據(jù)排序后獲取前幾行數(shù)據(jù)的寫法(rownum、fetch方式)
項目中用到Oracle分組查詢取每組排序后的前N條記錄,group?by?只能返回每個組的單條統(tǒng)計,下面這篇文章主要給大家介紹了關于oracle數(shù)據(jù)排序后獲取前幾行數(shù)據(jù)的寫法(rownum、fetch方式),需要的朋友可以參考下2022-12-12Oracle 創(chuàng)建監(jiān)控賬戶 提高工作效率
有很多Oracle服務器,需要天天查看TableSpace,比較麻煩了。2009-10-10Oracle sql批量插入多條數(shù)據(jù)的實現(xiàn)
這篇文章主要介紹了Oracle sql批量插入多條數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07