利用触发器触发序列实现oracle表数据的序列自增

第一次用oracle开发整合的web项目,发现oracle没有mysql的自动递增的功能,现只能走触发器、序列的途径,现把方法整理分享给大家,方便以后使用:
首先:在oracle里创建序列
-- Create sequence
create sequence R_STAFF_ROLE_SEQ //序列名
minvalue 1 //最小值
maxvalue 99999999999 //最大值,一般这个足够用
start with 1 //开始值
increment by 1 //增量
cache 20 //缓存大小
order;

其次:在oracle里编写触发器

CREATE OR REPLACE TRIGGER TRI_R_STAFF_ROLE
BEFORE INSERT ON R_STAFF_ROLE
FOR EACH ROW
BEGIN
  SELECT R_STAFF_ROLE_SEQ.NEXTVAL
    INTO :NEW.STAFF_ROLE_ID
    FROM DUAL;
END ;

含义:当执行保存操作的时候,先->触发器->触发序列_>系统添加序列值->保存数据

以上问题是为不写hibernate配置的用户使用方法。

希望对大家有帮助,多多指点。。。

你可能感兴趣的:(oracle,sql,Web)