国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle中使用觸發器(trigger)和序列(sequence)模擬實現自增列實例

2024-08-29 13:58:06
字體:
來源:轉載
供稿:網友

問題:在SQL Server數據庫中,有自增列這個字段屬性,使用起來也是很方便的。而在Oracle中卻沒有這個功能,該如何實現呢?

答:在Oracle中雖然沒有自增列的說法,但卻可以通過觸發器(trigger)和序列(sequence)來模式實現。

示例:

1、建立表

復制代碼 代碼如下:

create table user 
(  
    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開始計數
--NOMAXVALUE        -- 不設置最大值
--NOCYCLE       -- 一直累加,不循環
--CACHE 10;     -- 緩存序列個數,有助于提高效率,但可能造成跳號

3、創建觸發器
創建一個基于該表的before insert 觸發器,在觸發器中使用剛創建的SEQUENCE。

復制代碼 代碼如下:

create or replace trigger user_trigger  
before insert on user 
for each row  
begin 
      select   user_seq.nextval  into:new.id from sys.dual ;  
end; 


下面就可以插入數據測試了。經過本人證明,上述方法是可行的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四会市| 开封县| 灵武市| 济源市| 五原县| 青海省| 自治县| 闽侯县| 成都市| 吴堡县| 五常市| 濮阳市| 鹤峰县| 刚察县| 海丰县| 蚌埠市| 宾川县| 宿迁市| 夏津县| 黑龙江省| 长岭县| 卢龙县| 庆元县| 调兵山市| 寻甸| 登封市| 崇信县| 化隆| 东丰县| 龙口市| 太和县| 依安县| 永泰县| 武川县| 孝义市| 东乌珠穆沁旗| 长乐市| 景洪市| 呼和浩特市| 永宁县| 锡林郭勒盟|