第一步:添加主鍵(如果已有且是自己命名的可略過)
一個表中要有主鍵,我們建主鍵的時候要自己命名,如果不是可能在后邊遇到“主鍵唯一,不能自動添加”的問題。
設置主鍵:
alter
table
"表的名字"
add
constraint
"主鍵名字"
primary
key
(id);
第二步:創建序列
/*在Oracle中,可以為每張表的主鍵創建一個單獨的序列,
然后從這個序列中獲取自動增加的標識符,把它賦值給主鍵。
例如一下語句創建了一個名為user_id_seq 的序列,
這個序列的起始值為1,增量為1。*/
create sequence user_id_seq increment by 1 start with 1;
create sequence user_id_seq
minvalue 1
maxvalue 99999999999
start with 1
increment by 1
cache n / nocache --其中n代表一個整數,默認值為20
;
/*
如果指定CACHE值,Oracle就可以預先在內存里面放置一些Sequence,這樣存取的快些。cache里面的取完后,Oracle自動再取一組到cache。使用cache或許會跳號, 比如數據庫突然不正常down掉(shutdown abort),cache中的Sequence就會丟失。舉個例子:比如你的sequence中cache 100,那當你sequence取到90時突然斷電,那么在你重啟數據庫后,sequence的值將從101開始。
*/
第三步:創建觸發器
/*如果每次都要插入user_id_seq.nextval的值會非常累贅與麻煩,
因此可以考慮使用觸發器來完成這一步工作。
創建觸發器trg_user_id_seq*/
create or replace trigger trg_user_id_seq BEFORE
insert ON users FOR EACH ROW WHEN (new.id is null)
begin select user_id_seq.nextval into:new.id from dual;
end trg_user_id_seq ;
--編譯 trigger 語句如下:
--ALTER TRIGGER trg_user_id_seq COMPILE;
--commit;
第四步:enjoy it !!!
insert into 你的表,可以不用設置主鍵!!