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 ;
- 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 values ('人员); 错误,没有足够的值
insert into Test_Increase (userid,username) values ('人员); 错误,没有足够的值
文章来源:CSDN