刪除被其他表關聯的主表

數據表之間存在外鍵關聯的情況下,如果直接刪除父表,結果會顯示失敗。原因直接刪除,將破壞表的參照完整性。 如果必須要刪除,可以先刪除與它關聯的子表,再刪除父表,只是這樣會同時刪除兩個表中的數據。但有的情況下可能要保留子表,這時如要單獨刪除父表,只需將關聯的表的外鍵約束條件取消,然後就可以刪除父表了。

【例4.5】定義數據表tb_emp5,並在tb_emp5表上創建外鍵約束。
創建一個部門表tb_dept1,SQL語句如下:

CREATE TABLE tb_dept1
(
id       INT(11) PRIMARY KEY,
name    VARCHAR(22)  NOT NULL,
location  VARCHAR(50)
);

定義數據表tb_emp5,讓它的鍵deptId作爲外鍵關聯到tb_dept1的主鍵id,SQL語句爲:

CREATE TABLE tb_emp5 
(
id      INT(11) PRIMARY KEY,
name   VARCHAR(25),
deptId  INT(11), 
salary   FLOAT,
CONSTRAINT fk_emp_dept1 FOREIGN KEY(deptId) REFERENCES tb_dept1(id)
);

以上語句執行成功之後,在表tb_emp5上添加了名稱爲fk_emp_dept1的外鍵約束,外鍵名稱爲deptId,其依賴於表tb_dept1的主鍵id。

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