gpt4 book ai didi

mysql - ON DELETE CASCADE 有问题吗?

转载 作者:行者123 更新时间:2023-11-29 02:18:12 24 4
gpt4 key购买 nike

我有一个关于 ON DELETE CASCADE 的问题,我以这个表为例。

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)
);

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

ALTER TABLE shop_articles_images
ADD CONSTRAINT shop_articles_images_ibf5
FOREIGN KEY (article_id) REFERENCES shop_articles (id)
ON DELETE CASCADE;

虽然已经添加了它,但它仍然接缝我无法从主表中删除行,我不想手动删除其他附属表,但是当从主表中删除时将其删除。

任何人都有这方面的经验,或者可以看出我在这里做错了什么?当 mysql 服务器重新启动时,这个 altertable 会重置吗?

最佳答案

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

关于mysql - ON DELETE CASCADE 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36033971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com