背景介绍:
SQL SERVER可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键,有利于我们进行数据的插入操作。MySql中可以使用“auto_increment”即可。但是oracle有点麻烦,需要使用序列和触发器达到目的。
--学校表
create table school(sid number(4),sname varchar2(400 char), check_status number(1) default 0 check( check_status in(0,1)),accountant varchar2(20 char),pwd varchar2(20 char),email varchar2(30 char),photo_path varchar2(800 char),
constraint pk_t_school primary key(sid));-- 序列 (序列与触发器实现school表中sid字段的自动增长)create sequence shool_sid_autoincminvalue 1maxvalue 9999999999999999999999999999start with 1increment by 1nocache;--触发器 (序列与触发器实现school表中sid字段的自动增长)create or replace trigger insert_shool_sid_autoincbefore insert on schoolfor each rowbeginselect shool_sid_autoinc.nextval into :new.sid from dual;end;
/
-- 测试结果
SQL> insert into school values(100,'a',0,001,001,'964955634@qq.com',66666);
1 row created.SQL> insert into school values(100,'aaaaaaaaaaaaaaaaaaaaa',0,001,001,'964955634@qq.com',66666);1 row created.SQL> select sid from school; SID----------12
Ok,结束。 转载请标明出处