1. 程式人生 > >Oracle表中新增外來鍵約束

Oracle表中新增外來鍵約束

新增主鍵約束:

ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID);

有三種形式的外來鍵約束:

1、普通外來鍵約束(如果存在子表引用父表主鍵,則無法刪除父表記錄)

2、級聯外來鍵約束(可刪除存在引用的父表記錄,而且同時把所有有引用的子表記錄也刪除)

3、置空外來鍵約束(可刪除存在引用的父表記錄,同時將子表中引用該父表主鍵的外來鍵欄位自動設為NULL,但該欄位應允許空值)

這三種外來鍵約束的建立語法如下:

例如有兩張表 父表T_INVOICE主鍵ID。子表T_INVOICE_DETAIL外來鍵欄位INVOICE_ID

1、普通外來鍵約束:

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;

3、置空外來鍵約束:

ALTER TABLE T_INVOICE_DETAIL

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