0

当我尝试设置外键时,它会抛出错误号 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)
)//

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

谢谢

4

1 回答 1

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列声明为主键。

是一个 SQL Fiddle 示例。

于 2014-10-27T12:08:05.463 回答