最近在學習Oracle和MySql,MySql有自動配置主鍵自增長auto_increment,這樣在輸入數據的時候可以不考慮主鍵的添加,方便對數據庫的操作。
在Oracle中設置自增長首先用到sequence序列;
以創建學生表為例:
create table Student(id number(4) primary key,--主鍵id,實現自增
name varchar2(20),--名字
age number(3)--學生年齡
);
----------創建學生表-----------------
create sequence stu_sequence
increment by 1
start with 1
maxvalue 9999
minvalue 1
nocycle
cache 50;
-----------創建序列-----------------
create or replace trigger stu_auto_addid
before insert on?Student
for each row
when(new.id?is null)
begin
select stu_sequence.nextval into :new.id from dual;
end;
/
-----------創建觸發器-----------------
接下來驗證:
insert into Student(name,age) values('張三',12);
select * from Student;
結果:
51 張三 12
注:51原因是在這之前我已經試過一次,關閉數據庫以后序列的緩存釋放,從50開始算起。
這個序列同樣可以用于其他的表。只需修改觸發器中的表名。
?
?