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