下面用一個(gè)例子來說明自增主鍵的創(chuàng)建:
1、建用戶數(shù)據(jù)表
drop table dectuser;
create table dectuser(
userid integer primary key, /*主鍵,自動(dòng)增加*/
name varchar2(20),
sex varchar2(2)
);
drop sequence dectuser_tb_seq;
create sequence dectuser_tb_seq minvalue 1 maxvalue 99999999
increment by 1
start with 1; /*步長為1*/
3、創(chuàng)建觸發(fā)器
create or replace trigger dectuser_tb_tri
before insert on dectuser /*觸發(fā)條件:當(dāng)向表dectuser執(zhí)行插入操作時(shí)觸發(fā)此觸發(fā)器*/
for each row /*對(duì)每一行都檢測是否觸發(fā)*/
begin /*觸發(fā)器開始*/
select dectuser_tb_seq.nextval into :new.userid from dual; /*觸發(fā)器主題內(nèi)容,即觸發(fā)后執(zhí)行的動(dòng)作,在此是取得序列dectuser_tb_seq的下一個(gè)值插入到表dectuser中的userid字段中*/
end;
/ /*退出sqlplus行編輯*/
4、提交
commit;
現(xiàn)在就完成了自增主鍵的設(shè)定,搞定!可以檢測一下。
insert into dectuser(name,sex) values ('wang','女');
提示“已創(chuàng)建一行”,表示成功。呵呵:D
要注意的是主鍵數(shù)據(jù)類型如果為number,則觸發(fā)器創(chuàng)建不了,還不明白這是為什么:(