数据库表中外键加不上?
以前给表中字段加外键,都是加的另一个表的主键,这次同学问我,给一个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:支持
- 外键
谢谢!