我有一张名为
的表
Category_tbl
Id
Categoryname
info
subcategory_tbl
id
categoryid
subcatname
info
product_tbl
id
subcat
info
我在这里subcategory_tbl有类别id,product_tbl的子类别id为subcat.now如果我想要删除一个类别那么我需要删除子类别_Tbl和product_tbl中相同键的所有相应数据。我能不能这样做?我尝试加入,但它无法正常工作
答案 0 :(得分:0)
外键上没有cascading deletes,您可以将其作为从subcategory
到product
以及最后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
,那么您需要做的就是删除该类别,同时也会删除产品和子类别。危险但有效。
答案 1 :(得分:0)
不幸的是,他们不是以delete
的方式提问你的方式。由于表格是not related to each other in any manner
..只是通过让一个列与其他表格具有相同的值,一个无法关联delete
命令删除两个表的行......
必须有一些标准,我们可以通过这些标准加入表格,然后删除行...这里我们没有......
答案 2 :(得分:0)
首先从具有外键的表中删除数据,然后从具有主键的表中删除数据。使用多个删除语句...