我想知道是否有可能在已经有数据的表上添加外键禁忌。我有一张桌子供应商和一张桌子配料
当我尝试添加约束时,如下所示:

我得到了以下错误
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)

发布于 2018-01-31 11:09:58
如果要向包含数据的表中添加约束,数据必须满足约束(或者如果数据不必满足约束,那么添加约束的意义是什么?)
你的选择:
(一些DBMS允许使用指定的NOCHECK添加约束,这意味着该约束将被添加,但不会应用于现有数据--只有新的数据和对现有数据的更改。我不知道MySql是否允许这样做- Server和Oracle。如果MySql这样做了,您可能不得不编写脚本,而不是使用GUI选项。)
发布于 2018-01-31 11:04:41
当然可以,只需确保引用表中存在外键的值,否则就必须创建所有缺失的值或将其值更改为null。
祝好运
发布于 2018-01-31 11:06:05
如果对要创建外键的表中的每个主键有记录,则可以尝试更改表。
错误显示表中有一条记录,该记录在其他表中不作为主键存在。这是在阻止你改变桌子。
https://stackoverflow.com/questions/48540557
复制相似问题