Oracle中主键自增长
最近在學(xué)習(xí)Oracle和MySql,MySql有自動配置主鍵自增長auto_increment,這樣在輸入數(shù)據(jù)的時候可以不考慮主鍵的添加,方便對數(shù)據(jù)庫的操作。
在Oracle中設(shè)置自增長首先用到sequence序列;
以創(chuàng)建學(xué)生表為例:
create table Student(id number(4) primary key,--主鍵id,實現(xiàn)自增
name varchar2(20),--名字
age number(3)--學(xué)生年齡
);
----------創(chuàng)建學(xué)生表-----------------
create sequence stu_sequence
increment by 1
start with 1
maxvalue 9999
minvalue 1
nocycle
cache 50;
-----------創(chuàng)建序列-----------------
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;
/
-----------創(chuàng)建觸發(fā)器-----------------
接下來驗證:
insert into Student(name,age) values('張三',12);
select * from Student;
結(jié)果:
51 張三 12
注:51原因是在這之前我已經(jīng)試過一次,關(guān)閉數(shù)據(jù)庫以后序列的緩存釋放,從50開始算起。
這個序列同樣可以用于其他的表。只需修改觸發(fā)器中的表名。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/soaplay/p/8858503.html
總結(jié)
以上是生活随笔為你收集整理的Oracle中主键自增长的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 12.4英寸旗舰大屏!小米平板5 Pro
- 下一篇: 17岁波波维奇46秒86破世界纪录:10