gpt4 book ai didi

mysql - 在包含数据的表上添加外键约束

转载 作者:行者123 更新时间:2023-11-29 02:12:18 24 4
gpt4 key购买 nike

我想知道是否可以在已有数据的表上添加外键约束。我有一张表 Suppliers 和一张表 Ingredients

当我尝试添加如下约束时:

enter image description here

我收到以下错误

MySQL said: Cannot add or update a child row: a foreign key constraint fails (`blackfisk_relations`.`#sql-223_37`, CONSTRAINT `ingredients_supplier_id_foreign` FOREIGN KEY (`supplier_id`) REFERENCES `suppliers` (`id`) ON DELETE CASCADE)

enter image description here

最佳答案

如果要向包含数据的表添加约束,则数据必须满足约束(或者如果数据不必满足约束,添加约束的意义何在?)

您的选择:

  • 您可以删除对不存在的外键的引用。
  • 您可以在外键表中添加键,以便引用确实存在。

(某些 DBMS 允许在指定 NOCHECK 的情况下添加约束,这意味着将添加约束,但不会应用于现有数据 - 仅适用于新数据和对现有数据的更改。我不知道 MySql允许这样做 - SQL Server 和 Oracle 可以。如果 MySql 可以,您可能必须编写脚本,而不是使用 GUI 选项。)

关于mysql - 在包含数据的表上添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48540557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com