SQLfiddle Errno:150 - 外键问题

时间:2014-10-27 12:02:06

标签: mysql sql sqlfiddle

当我尝试设置外键时,它会抛出错误号150。

架构创建失败:无法创建表'db_2_f856e.urlnames'

这是代码:

create table images(
     id int auto_increment primary key
    ,gender varchar(6)
    ,pattern varchar(50)
    ,item_name varchar(25)
    ,url_id int(250)
)//

create table urlnames(
     url_id_no int(250)
    ,url varchar(250)
    ,foreign key (url_id_no) references images(url_id)
)//

有人可以解释为什么它不起作用吗?

由于

1 个答案:

答案 0 :(得分:1)

您的数据结构没有意义。我想你想要:

create table urlnames(
     url_id_no int auto_increment primary key,
     url varchar(250)
);

create table images(
     image_id int auto_increment primary key,
     gender varchar(6),
     pattern varchar(50),
     item_name varchar(25),
     url_id int(250) references urlnames(url_id_no)
);

外键引用引用的任何列都必须是主键或唯一键。并且,urlnames应将其id列声明为主键。

Here是一个SQL小提琴示例。