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

首頁 > 數據庫 > Oracle > 正文

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

2020-07-26 14:19:55
字體:
來源:轉載
供稿:網友

問題:在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; 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新建县| 吉木萨尔县| 思南县| 崇义县| 商洛市| 利川市| 中山市| 兴城市| 贵定县| 维西| 元朗区| 盈江县| 锡林浩特市| 雷州市| 大渡口区| 扎囊县| 宜丰县| 榆林市| 临高县| 太仆寺旗| 西安市| 桂林市| 柳林县| 赤壁市| 丁青县| 沙田区| 科技| 赤峰市| 中西区| 雅江县| 尼玛县| 商丘市| 方城县| 宁德市| 陈巴尔虎旗| 龙口市| 石屏县| 台安县| 甘孜县| 邵东县| 贵南县|