国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

在Oracle數據庫中添加外鍵約束的方法詳解

2020-07-26 14:13:11
字體:
來源:轉載
供稿:網友

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

使用 參考模式、參考表 和 參考限制 下拉列表來分別選擇一個外部索引數據庫、表及限制。

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

刪除時 下拉列表定義采取行動的類型。

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語句中指定字段名。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻江县| 公主岭市| 九江县| 安多县| 乌兰县| 休宁县| 如皋市| 乌什县| 邹平县| 电白县| 玉门市| 玉田县| 闸北区| 沽源县| 疏附县| 钟山县| 博客| 乌什县| 合山市| 卓资县| 扎囊县| 宝山区| 田东县| 香河县| 宜都市| 准格尔旗| 铜鼓县| 耿马| 曲阳县| 辽源市| 郴州市| 紫阳县| 五寨县| 右玉县| 锡林郭勒盟| 林口县| 博乐市| 酒泉市| 开化县| 邛崃市| 裕民县|