下面用一個(gè)例子來(lái)說(shuō)明自增主鍵的創(chuàng)建:
1、建用戶(hù)數(shù)據(jù)表
drop table dectuser;
create table dectuser(
userid integer primary key, /*主鍵,自動(dòng)增加*/
name varchar2(20),
sex varchar2(2)
);
2、創(chuàng)建自動(dòng)增長(zhǎng)序列
drop sequence dectuser_tb_seq;
create sequence dectuser_tb_seq minvalue 1 maxvalue 99999999
increment by 1
start with 1; /*步長(zhǎng)為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ì)每一行都檢測(cè)是否觸發(fā)*/
begin /*觸發(fā)器開(kāi)始*/
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è)定,搞定!可以檢測(cè)一下。
insert into dectuser(name,sex) values ('wang','女');
提示“已創(chuàng)建一行”,表示成功。呵呵:D
要注意的是主鍵數(shù)據(jù)類(lèi)型如果為number,則觸發(fā)器創(chuàng)建不了,還不明白這是為什么:(
posted on 2008-04-13 16:37
綠茶 閱讀(16981)
評(píng)論(2) 編輯 收藏 所屬分類(lèi):
DataBase