如何正确地在mysql表的外键中级联删除?

问题描述

我有三个带有外键的表,但是当我运行此表时,它们应该在删除时级联

"DELETE FROM Tagmap WHERE excerptID = ?"

Tagmap中的映射,ExcerptTag中均不发生任何变化。我在做什么错了?

CREATE TABLE IF NOT EXISTS excerpt(
  excerptID INT UNSIGNED NOT NULL AUTO_INCREMENT,title VARCHAR(255) NOT NULL,text VARCHAR(2500) NOT NULL,comments VARCHAR(2500) NOT NULL,PRIMARY KEY (excerptID)
) ENGINE=INNODB CHARACTER SET utf8mb4;

CREATE TABLE IF NOT EXISTS tag(
  tagID INT UNSIGNED NOT NULL AUTO_INCREMENT,description VARCHAR(255) NOT NULL,PRIMARY KEY (tagID)
) ENGINE=INNODB CHARACTER SET utf8mb4;

CREATE TABLE IF NOT EXISTS tagmap (
  excerptID INT UNSIGNED NOT NULL,tagID INT UNSIGNED NOT NULL,PRIMARY KEY (excerptID,tagID),CONSTRAINT excerptFK FOREIGN KEY (excerptID) REFERENCES excerpt (excerptID)
    ON DELETE CASCADE 
    ON UPDATE CASCADE,CONSTRAINT tagFK FOREIGN KEY (tagID) REFERENCES tag (tagID)
    ON DELETE CASCADE 
    ON UPDATE CASCADE
) ENGINE=INNODB;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)