新聞中心
Oracle不具有已定義好的自動編號列,需要手工創(chuàng)建,下面就Oracle自動編號列創(chuàng)建的方法進行歸納:

1. 首先需要給要添加Oracle自動編號列的表創(chuàng)建索引,被索引的列就是后面要實現(xiàn)的自動編號列,這樣的列往往是名為“ID”的列。創(chuàng)建索引可以通過OEM創(chuàng)建,也可以 在SQL*Plus或PL/SQL中通過SQL語句創(chuàng)建。以方案LY中的表HARD為例,給其hard_id列創(chuàng)建索引的SQL語句為:
- CREATE UNIQUE INDEX LY.HARD ON LY.HARD(hard_id);
2. 然后需要創(chuàng)建一個最小值為1,***值不限,遞增值為1的序列。序列的創(chuàng)建同樣可以通過OEM或直接輸入SQL語句創(chuàng)建。創(chuàng)建序列的SQL語句為:
- drop sequence HARD_SEQ;
- create sequence HARD_SEQ
- minvalue 1
- maxvalue 999999999999999999999999999
- start with 21
- increment by 1
- cache 20
- order;
3.***為表LY.HARD創(chuàng)建觸發(fā)器,以實現(xiàn)在每次插入行時,hard_id列自動遞增編號。觸發(fā)器的創(chuàng)建同樣可以方便的由OEM創(chuàng)建,也可以用SQL語句創(chuàng)建。下面為創(chuàng)建觸發(fā)器的SQL語句:
- CREATE OR REPLACE TRIGGER "HARD_ID_TRIGGER" BEFORE
- INSERT ON "LY"."HARD" FOR EACH ROW
- declare
- next_checkup_no number;
- begin
- select hard_seq.nextval
- into next_checkup_no
- from dual;
- :NEW.hard_id := next_checkup_no;
- end;
值得小心的地方,在用OEM創(chuàng)建觸發(fā)器時,有可能出現(xiàn)“Failed to commit: 索引中丟失 IN 或 OUT 參數(shù):: 1”的錯誤提示,在網(wǎng)上查閱了一些資料,認為這可能是Oracle中的一個BUG,所以建議使用SQL語句創(chuàng)建觸發(fā)器。
以上就是Oracle自動編號列創(chuàng)建的方法,要想了解的更多請留意網(wǎng)站上的相關(guān)論壇。
【編輯推薦】
- Oracle性能診斷不能不知的秘籍
- 使用dtu遠程連接Oracel 9i數(shù)據(jù)庫的方法
- Windows2000服務(wù)器下安裝Oracle9i與10g
- Oracle多表查詢優(yōu)化的代碼示例
- Oracle更改的默認端口號剖析
網(wǎng)頁名稱:Oracle自動編號列的創(chuàng)建
當前URL:http://m.fisionsoft.com.cn/article/djgiieh.html


咨詢
建站咨詢
