ORACLE主鍵自增

用習慣了MySQL突然轉到Oracle確實很不習慣

首先MySQL主鍵可以設置自增,但是在Oracle中並沒有主鍵自增

Oracle沒有主鍵自增但是可以通過另一種辦法來實現,讓主鍵自增

首先設置序列

在plsql界面的左邊有一個窗口顯示的是一些類似文件夾的東西:

找到Sequences,右鍵新建

我這是中文的,就不多說了,其中所有者就是哪一個賬號

一般開始於1,增量也一般是1,名字看你個人愛好,最小值一般也是1,最大值我一般都設的好多9,防止不夠用,高速緩存這個我還不是很明白,默認是20,據說是可以提高速度,不清楚,循環我也沒試過,我個人理解就是超過了最大值就開始循環,排序這個貌似沒什麼用可能我用錯了

填完點下面那一排有一個應用按鈕,這就設置好了一個序列了

第二步就是設置觸發器

同樣在那些文檔一樣的地方找到Triggers:

同樣也是新建

第一行是觸發器名字

第二行是觸發時機,語句執行前還是執行後before是之前

第三行是什麼時候觸發,比如insert的時候觸發

第四行是關聯表

第五行什麼等級我也忘了,我一直選默認

然後確定

確定後的畫面:

馬賽克是進來後系統會幫你寫好的,第一個和最後一個是觸發器名稱,第二個是關聯表,我這選的是insert之前觸發,在第二行有顯示,然後在begin下面書寫語句

比如你要讓a表的id自增:

SELECT  序列名.NEXTVAL into :new.id from dual;

序列名.NEXTVAL這個好像是當前序列的下一個!

序列名就是你在前面創建的那個!

應該很清楚了爲什麼是from dual我就不清楚了!我也剛接觸Oracle!

寫完後按F8鍵!搞定,以後插入數據的時候可以不管主鍵了!

希望知道的大牛指點一二!謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章