ERROR 1005 (HY000): Can't create table 'mydb.#sql-f58_12' (errno: 150)

匿名 (未验证) 提交于 2019-12-02 23:41:02

数据库表中外键加不上?

以前给表中字段加外键,都是加的另一个表的主键,这次同学问我,给一个author表中的name加外键(user表中的username),username不是主键。
alter table author add foreign key(name) references user(username)
然后就是加不上。。。

  • 原因1
    user表中的username,要成为author中name的外键,username(不是主键)此字段必须加上索引
    alter table user add index(username)

  • 原因2
    username和name者两个字段的类型必须一致。

  • 原因3
    show create table author
    show create table user
    看一下者两个表的类型是否一致

  • 原因4
    你的数据库引擎类型是MyISAM

    • 外键
      MyISAM:不支持
      InnoDB:支持

谢谢!

文章来源: https://blog.csdn.net/qq_43371004/article/details/91491804
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!