第一次用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里创建序列
-- 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配置的用户使用方法。
希望对大家有帮助,多多指点。。。