MySQL设置级联更新后修改FIELD_TEST主键触发外键约束失败原因咨询
错误原因
触发该报错的核心原因是外键关联的两个field_id字段长度不匹配,不符合MySQL外键规则要求:
- 父表
FIELD_TEST中field_id字段定义为CHAR(50) - 子表
GRAPH_FIELD_INFO_TEST中关联的field_id字段定义为CHAR(32)
MySQL要求外键关联的父子表字段,类型、长度、字符集、排序规则必须完全一致,级联更新、级联删除规则才能正常生效。
你修改GRAPH表graph_id能正常触发级联更新,是因为GRAPH表的graph_id是CHAR(32)类型,和GRAPH_FIELD_INFO_TEST表中关联的graph_id字段长度完全一致,符合外键约束要求。
修复方法
将两个表的field_id字段长度调整为统一值即可,比如都设置为CHAR(32)或者CHAR(50),调整后再执行更新操作就能正常触发级联更新。
内容的提问来源于stack exchange,提问作者nkhcode
相关产品推荐
相关产品推荐

