ORACLE设置主键是不会自动增加的,这个和SqlServer是不一样的,在oracle中所以必须用 序列 和 触发器 来完成主键的递增。
1建立数据表
create table Test_Increase(
userid number(10) primary key, /*建立主键*/
username varchar2(20)
);
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;
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;
使用方法
insert into Test_Increase (username) values ('人员'); 正确
insert into Test_Increase values ('人员); 错误,没有足够的值
insert into Test_Increase (userid,username) values ('人员); 错误,没有足够的值