我的问题是关于删除数据库中的数据。我的数据库有4个表:
项目
Topic
表有一个引用CategoryID
表的外键(Category
Subtopic
表有一个引用TopicID
表的外键(Topic
)Item
表有一个引用SubtopicID
表的外键(Subtopic
)我想知道我什么时候想删除一个类别该怎么办?非常感谢。
答案 0 :(得分:0)
如果要删除相关表中的所有相关行,可以执行级联删除。级联删除将删除父表和子表中的行。如果您需要自动删除多级别的所有关系,请搜索数据库风格的“cascade all”语法。
答案 1 :(得分:0)
如果您删除某个类别on delete cascade
,则会删除所有引用该类别的主题,并且将删除所有引用已删除主题的子主题。与项目相同。
如果您在其中一个表上有on delete restrict
,则会收到错误消息,指出由于参考限制而无法删除该类别。
您可以使用正确的sql语句或dbms UI更改级联的行为。
答案 2 :(得分:0)
如果我读得正确(破碎,不清楚英文),您必须删除ITEM
,SUBTOPIC
和TOPIC
表格中的数据,这些数据最终会指向您的{{ {1}}表。或者,您将不得不删除引用。
答案 3 :(得分:0)
Cascade
上的内容时, Category
将起作用。关于儿童的任何参考表类别的记录也将被删除。
这是定义它的简单示例
ALTER TABLE Courses
ADD FOREIGN KEY (CategoryId)
REFERENCES Categories(CategoryPK)
ON DELETE CASCADE;