使用ON DELETE CASCADE进行Issiue?

时间:2016-03-16 11:11:06

标签: mysql

我有一个关于ON DELETE CASCADE的问题,我已经把这个表作为一个例子。

-I

为了删除与主表关联的所有数据,我在添加表后使用此ALTER TABLE命令。

CREATE TABLE shop_articles(
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255),
    description TEXT
);

CREATE TABLE shop_articles_images(
    id INT AUTO_INCREMENT PRIMARY KEY,
    article_id INT,
    description VARCHAR(255),
    image VARCHAR(255),
    FOREIGN KEY (article_id) REFERENCES shop_articles (id)
);

它接缝已经添加了我不能删除主表中的行,我不想手动删除其他附属表,但删除它从主表删除。

任何人都有这方面的经验,或者可以看到我在这里做错了什么?重启mysql服务器时,这是否可以重置?

1 个答案:

答案 0 :(得分:2)

我认为你对ON DELETE CASCADE如何运作有些困惑。如果您的引擎是MyISAM,它不强制执行外键,则不会发生级联删除。如果您的引擎是InnoDB,那么如果您从主表shop_articles中删除记录,那么shop_articles_images中通过密钥关系链接到主表的任何记录也将被删除。