Oracle中使用觸發(fā)器(trigger)和序列(sequence)模擬實(shí)現(xiàn)自增列實(shí)例
問題:在SQL Server數(shù)據(jù)庫中,有自增列這個字段屬性,使用起來也是很方便的。而在Oracle中卻沒有這個功能,該如何實(shí)現(xiàn)呢?
答:在Oracle中雖然沒有自增列的說法,但卻可以通過觸發(fā)器(trigger)和序列(sequence)來模式實(shí)現(xiàn)。
示例:
1、建立表
(
id number(6) not null,
name varchar2(30) not null primary key
)
2、建立序列SEQUENCE
create sequence user_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;
語法:
CREATE SEQUENCE s_id NOMAXVALUE NOCYCLE
--INCREMENT BY 1 -- 每次加幾個
--START WITH 1 -- 從1開始計數(shù)
--NOMAXVALUE -- 不設(shè)置最大值
--NOCYCLE -- 一直累加,不循環(huán)
--CACHE 10; -- 緩存序列個數(shù),有助于提高效率,但可能造成跳號
3、創(chuàng)建觸發(fā)器
創(chuàng)建一個基于該表的before insert 觸發(fā)器,在觸發(fā)器中使用剛創(chuàng)建的SEQUENCE。
before insert on user
for each row
begin
select user_seq.nextval into:new.id from sys.dual ;
end;
下面就可以插入數(shù)據(jù)測試了。經(jīng)過本人證明,上述方法是可行的。
相關(guān)文章
ORACLE數(shù)據(jù)庫逐步解決ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA0013
這篇文章主要介紹了ORACLE數(shù)據(jù)庫逐步解決ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132過程的相關(guān)步驟,需要的朋友可以參考下2020-04-04VS2015連接Oracle數(shù)據(jù)庫的詳細(xì)步驟
這篇文章主要介紹了VS2015連接Oracle數(shù)據(jù)庫的詳細(xì)步驟,需要的朋友可以參考下2017-10-10如何解決Oracle數(shù)據(jù)表入庫中文亂碼問題
Oracle數(shù)據(jù)庫在處理中文數(shù)據(jù)時,經(jīng)常會遇到亂碼問題,導(dǎo)致數(shù)據(jù)無法正常顯示和處理,這是因?yàn)镺racle數(shù)據(jù)庫默認(rèn)的字符集為US7ASCII,無法識別中文字符,通過修改數(shù)據(jù)庫,客戶端和應(yīng)用程序字符集,將數(shù)據(jù)轉(zhuǎn)換為正確的字符集,可以避免亂碼問題2024-02-02oracle 11g的警告日志和監(jiān)聽日志的刪除方法
這篇文章主要介紹了oracle 11g的警告日志和監(jiān)聽日志的刪除方法,需要的朋友可以參考下2014-07-07ORACLE應(yīng)用經(jīng)驗(yàn)(1)
ORACLE應(yīng)用經(jīng)驗(yàn)(1)...2007-03-03DB2數(shù)據(jù)庫切換為oracle數(shù)據(jù)庫經(jīng)驗(yàn)教訓(xùn)總結(jié)(必看篇)
下面小編就為大家?guī)硪黄狣B2數(shù)據(jù)庫切換為oracle數(shù)據(jù)庫經(jīng)驗(yàn)教訓(xùn)總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04Oracle數(shù)據(jù)庫數(shù)據(jù)丟失恢復(fù)的幾種方法總結(jié)
相信大家無論是開發(fā)、測試還是運(yùn)維過程中,都可能會因?yàn)檎`操作、連錯數(shù)據(jù)庫、用錯用戶、語句條件有誤等原因,導(dǎo)致錯誤刪除、錯誤更新等問題。當(dāng)你捶胸頓足或嚇得腿軟時,肯定希望有辦法來恢復(fù)這些數(shù)據(jù)。oracle就提供了一些強(qiáng)大的方法或機(jī)制,可以幫到有需要的你。2016-12-12有關(guān)Oracle數(shù)據(jù)庫的備份情況
有關(guān)Oracle數(shù)據(jù)庫的備份情況...2007-03-03