mysql - 如何使用一键从另外2个表中删除?

标签 mysql asp.net sql

我有一个名为
的表 类别_tbl

Id
Categoryname
info

子类别_tbl

id
categoryid
subcatname
info

产品_tbl

id
subcat
info

我在这里 subcategory_tbl 有类别 id,product_tbl 有子类别 id 作为 subcat。现在如果我想删除一个类别,那么我需要删除 subcategory_Tbl 和 Product_tbl 中相同键的所有相应数据。我该怎么做?我尝试加入,但不起作用

最佳答案

没有cascading deletes在外键上,您可以通过从 subcategoryproduct 以及最后 category 的一系列删除来执行此操作。假设您要删除类别 123:

delete 
from product_tbl
where subcatid in
(
  select id
  from subcategory_tbl
  where categoryid = 123
);

delete 
from subcategory_tbl
where categoryid = 123;

delete 
from Category_tbl
where id = 123;

但是,如果您确实在两个外键上定义了 ON DELETE CASCADE,那么您所需要做的就是删除类别,并且产品和子类别也会被删除。危险,但有效。

关于mysql - 如何使用一键从另外2个表中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545235/

相关文章:

jquery - Mac safari 奇怪的符号问题

c# - SignalR .Net 客户端 : How do I send a message to a Group?

MYSQL仅列出特定类型应用程序的用户

sql - mysql中列的GUID默认值

php - 选择下一个现有的qID

mysql - 在 ubuntu 上安装工作台

python - Django原始查询动态查询

c# - 在可视化 Web 部件中从 javascript 调用代码隐藏函数

mysql - sql update with inner join 和where

php - 使用 LIKE 运算符和部分搜索的 mySql 搜索