【问题标题】:SQL error when trying to delete a row from my table尝试从我的表中删除一行时出现 SQL 错误
【发布时间】: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


【解决方案1】:

DELETE 语句与 REFERENCE 约束“FK_re”冲突

这意味着你不能删除你想要的,因为有一个外键引用。

这些表是由某个列中的一条数据链接的,SQL 会警告您,如果您这样做,链接将一无所获。

这是 SQL 数据完整性的优势之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2019-05-12
    相关资源
    最近更新 更多