簡體   English   中英

在刪除級聯上添加外鍵 phpMyAdmin 不起作用

[英]Add foreign key on delete cascade phpMyAdmin is not working

我有一個名為book的主表,其中包含字段id_book (primary, unique, auto increment) 和name 我有一個名為tag的輔助表,其中包含字段book_idtag

每本書可以有許多標簽。 我希望當我刪除一本書時,所有標簽也被刪除。

我用這個試過這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM