当我尝试设置外键时,它会抛出错误号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)
)//
有人可以解释为什么它不起作用吗?
由于
答案 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小提琴示例。