【问题标题】:SQLfiddle Errno: 150 - Foreign Key IssueSQLfiddle Errno:150 - 外键问题
【发布时间】:2014-10-27 12:02:05
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: mysql sql sqlfiddle


    【解决方案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 Fiddle 示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 2015-06-20
      • 1970-01-01
      • 2018-06-19
      • 2018-03-02
      • 2020-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多