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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 特克斯县| 朝阳区| 晋城| 衡阳县| 抚顺市| 绥宁县| 厦门市| 筠连县| 镇江市| 宁波市| 思南县| 武汉市| 稷山县| 黎平县| 湘阴县| 洛浦县| 济宁市| 清苑县| 贺州市| 军事| 福泉市| 青海省| 金华市| 那坡县| 溆浦县| 兴安盟| 交城县| 江达县| 安龙县| 石城县| 祁阳县| 扬州市| 中西区| 舟山市| 左贡县| 陇西县| 伊宁县| 石阡县| 湖北省| 拉孜县| 太湖县|