0

我的问题是关于删除数据库中的数据。我的数据库有 4 个表:

  • 类别
  • 话题
  • 副主题
  • 物品

  • 该表有一个引用该表Topic的外键 ( )CategoryIDCategory

  • 该表有一个引用该表Subtopic的外键 ( )TopicIDTopic
  • 该表有一个引用该表Item的外键 ( )SubtopicIDSubtopic

我想知道什么时候我想删除一个类别我应该怎么做?非常感谢。

4

4 回答 4

0

如果要删除相关表中的所有依赖行,可以进行级联删除。级联删除将从父表以及子表中删除该行。如果您需要自动删除多级的所有关系,请为您的数据库风格搜索“cascade all”语法。

于 2013-04-14T15:23:40.430 回答
0

如果您有on delete cascade,如果您删除一个类别,它将删除所有引用该类别的主题,反过来,所有引用已删除主题的子主题都将被删除。与物品相同。

如果您on delete restrict在其中一个表上,您将收到一条错误消息,指出由于引用约束而无法删除该类别。

您可以使用适当的 sql 语句或从您的 dbms UI 更改级联的行为。

于 2013-04-14T15:23:51.913 回答
0

如果我没看错(破碎的、不清楚的英语),您将不得不删除 , 中的数据ITEMSUBTOPIC以及TOPIC最终指向您的表的引用的CATEGORY表。或者,您必须删除参考。

于 2013-04-14T15:25:02.300 回答
0

Cascade当您删除 table 上的某些内容时将起作用Category。引用表 Category 的 child 上的任何记录也将被删除。

这是定义它的简单示例

ALTER TABLE Courses
ADD FOREIGN KEY (CategoryId)
REFERENCES Categories(CategoryPK)
ON DELETE CASCADE;
于 2013-04-14T15:25:24.953 回答