在Oracle資料庫中添加外鍵約束的方法詳解_oracle

來源:互聯網
上載者:User

外鍵指定一個列(或一組列)的值必須符合另一個表的一些行的值。我們說這是維持關聯表的參照完整性。
在圖形化介面中,在 外鍵 選項卡,只需簡單地點擊外鍵欄位來編輯。使用外鍵的工具列,能讓你建立新的、編輯或刪除選擇的外鍵欄位。
添加外鍵:添加一個外鍵到表。
刪除外鍵:刪除已選擇的外鍵。
使用 名 編輯框來輸入新鍵的名。

使用 參考模式、參考表 和 參考限制 下拉式清單來分別選擇一個外部索引資料庫、表及限制。

要包含欄位到鍵,只需簡單地雙擊 欄位 欄位或點擊  來開啟編輯器進行編輯。

刪除時 下拉式清單定義採取行動的類型。

No Action:這是預設的動作。參考索引值將不會更新或刪除。
CASCADE:分別地刪除任何參考已刪除行的行或更新參考列值為被參考列的新值。
SET NULL:設定參考列為 null。

啟用
你可以通過勾選或取消勾選框來選擇是否啟用或禁用外鍵限制。

下面來正式看使用SQL語句建立的方法:

1、預設的建立方式
在刪除被參照的資料時,將無法刪除。

CREATE TABLE T_INVOICE (ID NUMBER(10) NOT NULL, INVOICE_NO VARCHAR2(30) NOT NULL, CONSTRAINT PK_INVOICE_ID PRIMARY KEY(ID));  CREATE TABLE T_INVOICE_DETAIL (ID NUMBER(10) NOT NULL, AMOUNT NUMBER(10,3), PIECE NUMBER(10), INVOICE_ID NUMBER(10), CONSTRAINT PK_DETAIL_ID PRIMARY KEY(ID)); ALTER TABLE T_INVOICE_DETAIL ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID); 

2、串聯刪除 
    外鍵文法有個選項可以指定串聯刪除特徵。這個特徵僅作用於父表的刪除語句。使用這個選項,父表的一個刪除操作將會自動刪除所有相關的子表記錄

ALTER TABLE T_INVOICE_DETAIL ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID) ON DELETE CASCADE; 

    如果不能串聯刪除,可設定子表外鍵欄位值為null,使用on delete set null語句(外鍵欄位不能設定not null約束).

ALTER TABLE T_INVOICE_DETAIL ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE(ID) ON DELETE SET NULL; 

三、參照欄位文法結構 
    建立外鍵約束是,外鍵欄位參照父表的主鍵或Unique限制欄位。這種情況下可以不指定外鍵參照欄位名,如下:

ALTER TABLE T_INVOICE_DETAIL ADD CONSTRAINT FK_INVOICE_ID FOREIGN KEY(INVOICE_ID ) REFERENCES T_INVOICE; 

    當沒有指定參照欄位時,預設參照欄位是父表的主鍵。
    如果外鍵欄位參照的是Unique而非Primary Key欄位,必須在add constraint語句中指定欄位名。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.