SQL 使用外键更新表

新手上路,请多包涵

我有一个类别表,其中一个字段用作子类别表的外键。作为每个表的主键一部分的一个字段是语言 ID。我需要在两个表中更新这些。基本上,无论两个表中的语言 id = x,我都需要将其设置为 y。

当我尝试对任一表进行更新时,我得到一个“UPDATE 语句与 REFERENCE 约束冲突..”,它指的是外键约束。

如何更新这两个表上的语言字段?

原文由 derek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 623
2 个回答

如果您正在执行 1 次修复,请删除约束、更新,然后重新添加约束。

如果您需要在应用程序中执行此操作,请插入一个类别行,更新子类别行,然后删除原始类别行。

原文由 KM. 发布,翻译遵循 CC BY-SA 2.5 许可协议

使用这个,也不需要删除和添加。

 ALTER TABLE Table_Name
    NOCHECK CONSTRAINT FoerignKey_Name

--update query here

ALTER TABLE Table_Name
    CHECK CONSTRAINT FoerignKey_Name

有关更多信息 MSDN 链接: https ://learn.microsoft.com/en-us/sql/relational-databases/tables/disable-foreign-key-constraints-with-insert-and-update-statements?view=sql- 服务器-ver15

原文由 Mehsaan1719 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进