[英]Add foreign key on delete cascade phpMyAdmin is not working
我有一個名為book
的主表,其中包含字段id_book
(primary, unique, auto increment) 和name
。 我有一個名為tag
的輔助表,其中包含字段book_id
和tag
每本書可以有許多標簽。 我希望當我刪除一本書時,所有標簽也被刪除。
我用這個試過這個:
ALTER TABLE tag
ADD FOREIGN KEY (book_id)
REFERENCES book(id_book)
ON UPDATE CASCADE
ON DELETE CASCADE
我知道我過去在其他一些項目上使用過 SQL 的這個塊並且它工作但現在它似乎不再工作了,我不知道為什么。 如果我刪除一本書,標簽不會被刪除。
我認為 SQL 本身沒有任何問題,我認為問題不在於這個特定的外鍵。
也許密鑰沒有注冊或另一個外鍵阻止刪除。
我已經用這個 SQL 文件進行了測試並得到了想要的結果
CREATE TABLE book (
id_book INT AUTO_INCREMENT,
name VARCHAR(10),
PRIMARY KEY (id_book)
);
CREATE TABLE tag (
id INT AUTO_INCREMENT,
book_id INT,
name VARCHAR(10),
PRIMARY KEY (id)
);
ALTER TABLE tag
ADD FOREIGN KEY (book_id)
REFERENCES book(id_book)
ON UPDATE CASCADE
ON DELETE CASCADE;
INSERT INTO book (`name`) VALUES ("test", "another", "and another");
INSERT INTO tag (`book_id`, `name`) VALUES (1 , "first"), (2, "first"), (1, "second");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.