对不起标题,但我不知道如何命名..
我正在使用C#并拥有一个WinForms应用程序 我有2个表,每个表都有一个主键,这两个表是陌生人。 这意味着我有一个连接它们的第三个表。 第三个表有列:table的主键和表的B主键。
我只是想知道,如果我从第三个表中删除一行,则是相关的 表A和B中的数据也将被删除?
答案 0 :(得分:6)
如果使用ON DELETE CASCADE
选项创建了外键约束,则是,它将删除其他表中的相关行。
如果您创建了一个没有ON DELETE CASCADE
选项的外键约束,那么DBMS将阻止您删除原始行。
如果您没有创建外键约束,则只删除原始行。
有关级联删除选项的使用示例,请参阅this SO answer。
答案 1 :(得分:1)
不,你的第三个表不只是存储表A和B的引用的关联表。
但是,如果在表A中删除了一条记录并且在关联表C中有任何引用,它将具有不同的功能。根据您的级联选项,表C中的记录也将被删除。如果没有提到级联选项,则会出现异常。
答案 2 :(得分:1)
由于外键约束,Sql Server不允许您从第3个表中删除该行。您必须先从表A和B中删除引用第3个表的值,然后从第3个表中删除。
答案 3 :(得分:0)
不,因为第三个表是表a和表b的关联表,如果删除在第三个表上,则表a和表b中的记录都不会被删除。