错误代码:1215不能添加外键约束

  

新增外键时报错:
错误代码:1215无法添加外键约束

  

<强>表key_list:
CREATE TABLE <代码> key_list (
<代码> server_app_id INT(11)不是NULL,
<代码> server_name> 主键(<代码> server_app_id> )引擎=INNODB默认字符集=utf8

  

<强>表for_list:
CREATE TABLE <代码> for_list (
<代码> for_id INT(11)不是NULL,
<代码> for_name CHAR(13)不是NULL,
主键(<代码> for_id> )引擎=INNODB默认字符集=utf8

  

在表key_list中新增外键server_app_id_ibfk:
ALTER TABLE <代码> key_list <代码> 添加约束server_app_id_ibfk> server_app_id> for_list (<代码> for_id> 执行正常

  

在表key_list中新增外键server_name_id_ibfk:
ALTER TABLE <代码> key_list <代码> 添加约束server_name_id_ibfk> server_name> for_list (<代码> for_name> 执行报错。错误代码:1215无法添加外键约束

  

原因:
在新增外键时,关联表(for_list)中的相关字段(for_name)必须为指数

  

解决:
for_list表for_name字段新增索引
ALTER TABLE for_list添加索引for_index_name (for_name);

  

再次执行新增外键操作:
ALTER TABLE <代码> key_list <代码> 添加约束server_name_id_ibfk> server_name> for_list (<代码> for_name> 发现操作成功:
错误代码:1215不能添加外键约束”> </p><h2 class=错误代码:1215不能添加外键约束