oracle主键的自动增长不像mysql能通过auto_increment来指定,也像sql_server通过identity(1,1)就能实现从1开始,以+1的方式实现主键的自动增长。
而要通过sequence和触发器共同协作来实现主键的自动增长。
例子:
创建表:
create table student (
id int not null primary key,name varchar(30),
birth date,
score number(5,2)
);
创建sequence:
create sequence seq_student
minvalue 1
maxvalue 99999
start with 1
increment by 1
nocache;
创建trigger:
create or replace trigger insert_on_student_trit
before insert on student
for each row
begin select seq_student.nextval into:new.id from dual;
end insert_on_student_tri;
插入数据测试:
insert into student(name,birth,score) values('李四',to_date('20150209','yyyymmdd'),88);