删除SQL中的数据

时间:2013-04-14 15:18:42

标签: sql-server

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

  • 分类
  • 主题
  • 二级主题
  • 项目

  • Topic表有一个引用CategoryID表的外键(Category

  • Subtopic表有一个引用TopicID表的外键(Topic
  • Item表有一个引用SubtopicID表的外键(Subtopic

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果您删除某个类别on delete cascade,则会删除所有引用该类别的主题,并且将删除所有引用已删除主题的子主题。与项目相同。

如果您在其中一个表上有on delete restrict,则会收到错误消息,指出由于参考限制而无法删除该类别。

您可以使用正确的sql语句或dbms UI更改级联的行为。

答案 2 :(得分:0)

如果我读得正确(破碎,不清楚英文),您必须删除ITEMSUBTOPICTOPIC表格中的数据,这些数据最终会指向您的{{ {1}}表。或者,您将不得不删除引用。

答案 3 :(得分:0)

删除表Cascade上的内容时,

Category将起作用。关于儿童的任何参考表类别的记录也将被删除。

这是定义它的简单示例

ALTER TABLE Courses
ADD FOREIGN KEY (CategoryId)
REFERENCES Categories(CategoryPK)
ON DELETE CASCADE;