通过对数据库设置实现oracle的主键自增长
在制作润乾填报表时往数据库插入数据时支持数据库主键的自增长,这样润乾报表在往数据库中插入数据时不必担心并发时造成的主键重复问题,在润乾更新设置时设置:
Sqlserver数据库和mysql数据库在创建表时可直接将相关字段设置为自增长,这样报表往里边插入数据时,该字段数据能自动增长,但是oracle数据库并没有该设置,需要通过其他设置实现,通过下面例子了解下oracle中自增长主键的设置。
1:创建数据库表
create table Test_Increase(
userid number(10) primary key, /*主键,自动增加*/
username varchar2(20)
);
2:创建自增长序列,主键自增长方式是通过序列指定
CREATE SEQUENCE TestIncrease_Sequence
INCREMENT BY 1 – 每次加几个
START WITH 1 – 从1开始计数
NOMAXVALUE – 不设置最大值
NOCYCLE – 一直累加,不循环
CACHE 10;
3:创建触发器,创建一个触发器,当所设置字段数据变化时触发相关事件
CREATE TRIGGER Test_Increase BEFORE
insert ON Test_Increase FOR EACH ROW
begin
select TestIncrease_Sequence.nextval into:New.userid from dual;
end;
该触发器含义为当往表Test_Increase中插入数据时userid字段的值从序列TestIncrease_Sequence中取数插入。
这样当通过润乾或其他程序往数据库中插入数据时主键就能实现自增长方式。