背景介紹:
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_autoinc
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;
--觸發器 (序列與觸發器實現school表中sid字段的自動增長)
create or replace trigger insert_shool_sid_autoinc
before insert on school
for each row
begin
select 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
----------
1
2
Ok,結束。 轉載請標明出處