【发布时间】:2021-08-12 00:39:29
【问题描述】:
我遇到了一个问题,并收到了这个我无法确定其来源的 SQL 错误。它阻止了删除 API,互联网上对此一无所知:
DELETE 语句与 REFERENCE 约束“FK_re”冲突。冲突发生在数据库“test”、表“dbo.MatchingTable”、列“M_Id”中。
语句已终止。 DELETE 语句与 REFERENCE 约束“FK_re”冲突。冲突发生在数据库“test”、表“dbo.MatchingTable”、列“M_Id”中。
【问题讨论】:
-
必须先从外键的父表中截断或删除记录,然后才能从子表中删除。
-
反之亦然。假设有两张表,student 和 student_phone,因为一个学生可以有多个电话号码。通常 student_phone 表会有一个指向 student 表的外键。如果您尝试删除一个学生行,但该学生上仍有一个 student_table 行,那么您将收到此错误。您必须先删除学生的 student_phone 行,然后才能删除学生行。所以先从子表中删除,然后才能从父表中删除。
-
您使用的是什么 DBMS? SQL 请求应始终使用 DBMS 进行标记。一旦我们知道了 DBMS,我们就可以告诉你如何找出 FK_re 引用了哪个子表。
-
@ThorstenKettner 谢谢。我不擅长解释这种情况,因为当我在测试数据库中遇到它时,我很擅长纠正它。
标签: sql sql-server constraints sql-delete