国产探花免费观看_亚洲丰满少妇自慰呻吟_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; 


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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广东省| 广州市| 崇明县| 西吉县| 闽清县| 通州市| 拜泉县| 白玉县| 滦平县| 肥东县| 鄢陵县| 云浮市| 千阳县| 施甸县| 南澳县| 隆化县| 玉龙| 南木林县| 常宁市| 清水河县| 乾安县| 香格里拉县| 昭通市| 宁波市| 沅陵县| 巴里| 宁强县| 焦作市| 苏尼特左旗| 油尖旺区| 沭阳县| 洪洞县| 武强县| 陈巴尔虎旗| 浮山县| 措美县| 肇州县| 阳朔县| 新民市| 同江市| 体育|