利用触发器实现Oracle字段自增长

管理员权限类别

 

CEATE TABLE NCGA_Admin_Category
(
      ID NUMBER(7) NOT NULL PRIMARY KEY,
      Name NVARCHAR2(20) NOT NULL,
      Is_Can_DEL NUMBER(1) NULL,
      Is_Can_UPDATE NUMBER(1) NULL,
      Is_Can_INSERT NUMBER(1) NULL,
      Is_Can_MANAGE NUMBER(1) NULL,
      REMARKS NVARCHAR2(100) NULL
)

 

创建自增长序列(序列只需要建立一次)

 

CREATE SEQUENCE NCGA_Admin_Category_SEQUENCE
                INCREMENT BY 1        --每次加一
                START WITH 1          --从1开始计数
                NOMAXVALUE            --不设置最大值
                NOCYCLE               --一直累加不循环
                CACHE 10;

          

创建触发器

 

CREATE TRIGGER NCGA_Admin_Category BEFORE

INSERT ON NCGA_Admin_CategoryFOR EACH ROW

BEGIN 
SELECT NCGA_Admin_Category_SEQUENCE.NEXTVAL INTO:NEW.ID FROM DUAL;
END;
COMMIT;

INSERT INTO NCGA_Admin_Category(NAME) VALUES('WHITE')  --执行多次
SELECT * FROM NCGA_Admin_Category               --瞧瞧

 

posted @ 2012-03-23 18:39  蓝天_野菜  阅读(389)  评论(0编辑  收藏  举报