今日在MySQL中建立外键约束时出现了1005 - Can't create table (errno: 150) 这个错误,
意为不能创建引用约束,浏览网上信息,得知可能情况如下:
- 外键的引用类型不一致。
- 引用的字段和外键的字符编码charset类型不一致
- 引用字段和外键的约束条件不一样
- 没有找到主表中的列
但我所有情况都试了一下还是有错误,发现我作为外键去关联的表的列不是主键,导致出现错误。
即原因为关联表中的列必须是主键。
外键约束语法如下:
语法: foreign key(外键列名称) references 关联表(关联表的主键);
其他情况应该都为上述方法中的一种,仔细对照有没有差异。