Oracle中实现主键的默认自增长

2014-11-24 12:30:48 · 作者: · 浏览: 0
Oracle中实现主键的默认自增长
很多时候在做和 数据库相关的操作的时候,主键不能由用户去填写或涉及多个用户同时操作一张表的时候,就需要对主键进行严格的控制,这里主要讲 Oracle中如何实现主键的自增长。 www.2cto.com
主要由三步组成,1)建表;2)建立序列;3)建立触发器(目的是在表插入数据的时候启用序列生成的值),我们通过下面的例子来说明:
1)建立对应的数据库表:
drop table TEST;
create table TEST
(
bsm NUMBER(10) not null,
xh NUMBER(10),
posx NUMBER(15,5),
posy NUMBER(15,5)
);
alter table TEST add constraint PK_TEST primary key (BSM);
2)建立序列
drop sequence TEST_SEQ;
create sequence TEST_SEQ
minvalue 1
maxvalue 999999999999999999
start with 1
increment by 1
cache 20;
注:建立序列,最小值为1,从1开始计数和每次递增量为1;
3)建立触发器 www.2cto.com
drop trigger test_trig;
CREATE OR REPLACE TRIGGER "test_trig"
BEFORE INSERT ON test
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT TEST_SEQ.NEXTVAL INTO :NEW.BSM FROM DUAL;
END test_trig;
通过上述三步就完成了主键自动生成的设定,以后就可以根据业务需求直接插入业务数据就可以了