将外键添加到新创建的表(mySQL)时出错

问题描述 投票:0回答:1

我试图改变表产品,为字段petCat_ID添加类型外键的约束,以便它引用表petCategory(ID)。我刚刚创建了表petCat_ID,我得到一个“无法添加或更新子行”错误。

这是我为执行此错误而执行的命令:

 Alter table product
-> ADD CONSTRAINT FK_petCatID
-> FOREIGN KEY (petCat_ID)
-> REFERENCES productCategory(ID);

任何帮助或提示将不胜感激!注意:petCat_ID在表格产品中,而产品类别是不同的表格。

mysql foreign-keys constraints
1个回答
0
投票

在我的评论中,我已经提到我需要更清楚地了解您拥有什么样的数据库结构,但我有一系列的东西可以帮助您解决您遇到的问题。

  1. 如果ALTER语句不起作用,并且您具有良好的语法,那是因为您正在执行的操作与已存在的规则冲突。
  2. 有时,执行DROP TABLE命令,然后再次创建表可以解决问题。如果存在使您不丢弃表的依赖项,则可能会出现问题。
  3. 当事情变得严峻时,首先尝试查看用于制作数据库的脚本。修改它,看看是否可以获得所需的属性。完成后,创建一个新的数据库表结构,并将表条目从旧条目迁移到新数据库。
  4. I made a github repository here,其中我制作了面向Amtrack数据库的客户的第三个正常形式版本,甚至编写脚本以向表格添加数据,并附带示例。有图像显示ER结构。我包含了我的创建脚本,按特定顺序分成每个表的创建。它应该是如何分配表关系的一个很好的参考,这将使您很好地了解可以改变的内容。免责声明我为SSMS编写了它,但我不相信我使用SSMS特定的任何东西我认为代码应该在MySQL中工作。
© www.soinside.com 2019 - 2024. All rights reserved.