MySQL外键约束
我无法找出这个错误: 无法添加或更新子行:外键约束失败(MySQL外键约束,mysql,Mysql,我无法找出这个错误: 无法添加或更新子行:外键约束失败(运费费率详细信息,约束费率详细信息
运费
费率详细信息
,约束费率详细信息
外键(组件id
)引用计算(id
)更新级联)
以下是我试图做的(从日志中):
我反复查看并查看了表计算中id
的值,该情况下的值为:01
这有什么问题
我刚刚发现参考表是MyISAM
而不是InnoDB
,它会影响吗
对。如以下文件所述:
父表和子表必须使用相同的存储引擎
它接着说:
对于不支持外键的存储引擎(例如),MySQL服务器解析并忽略外键规范
您的component\u id
列的数据类型是什么?检查component\u id列的类型和长度是否与计算中的id列的类型和长度相同。@eggyal:它们都是int
,长度:11只是一个旁注(与您的问题无关):int
没有“长度”。11只是显示数据时要使用的客户端应用程序的提示。它不会以任何方式限制可能的值。您可以在int(1)
和int(11)
@eggshot中存储相同的值:是的,这就是问题所在。MySQL要求两个表使用相同的存储引擎(而不是MyISAM),以便外键约束能够工作。
INSERT INTO freight.rates_detail(rate_id,component_id,uom,rate,inc_or) values(0821,01,00,011.00,'Y')