0
DDL用於創建數據庫是這樣SQL參考integerity遞歸
create table manager
(employee_name varchar(20) not null,
manager_name varchar(20) not null,
primary key (employee_name),
foreign key (manager_name) references manager on delete cascade);
如果經理關係的情況下是這樣的
employee_name | manager_name
-----------------------------
A | B
-----------------------------
B | C
-----------------------------
C | B
-----------------------------
D | B
在這種情況下,如果我刪除元組(A,B),在此關係其他元組不會被刪除。我是這樣想的。
但書的答案是所有的元組都被刪除。我不明白爲什麼所有的元組都被刪除。
將employee_name添加到外鍵約束:外鍵(manager_name)在刪除級聯時引用manager(employee_name) –
DDL在書中。問題是如果一個關係中的元組被刪除,會發生什麼 – Damotorie
您的代碼無效。對於外鍵,您需要指定它所引用的列,它目前只指定它引用的表。如果它引用主鍵,那麼你是對的,它不會刪除每一行。但是你應該避免檢查你所要做的是本書告訴你要做什麼。也許有另一個外鍵,一個不同的外鍵,不同的樣本數據,或者你應該刪除一個不同於((A,B))的元組來獲得這個效果。 – Solarflare