【问题标题】:creating sql table with foreign key error no:150创建带有外键错误号的 sql 表:150
【发布时间】:2013-11-21 08:34:39
【问题描述】:

我尝试创建一个带有 2 个外键的表,但是当我尝试将其写入 mysql 时,收到错误消息“ERROR 1005 (HY000): Can't create table (errno: 150)”有人帮我吗?这是我的桌子:

  create table store (
  StoreName varchar(255),
  Category varchar(20),
  primary key(StoreName,Category));




 create table shopps (
 StoreName varchar(255),
 Category varchar(20),
 primary key(StoreName,Category),
 foreign key(StoreName) References store);
 foreign key(Category) References store);

【问题讨论】:

  • 在未经编辑的版本中,您的问题是另一个名称(购物)的表格。您确定错误是因为商店或商店而发生的吗?

标签: mysql sql database foreign-keys


【解决方案1】:

由于您的store 表具有复合主键,因此在shopps 表中引用它的外键也必须是复合主键:

create table shopps (
    StoreName varchar(255),
    Category varchar(20),
    primary key(StoreName,Category),
    foreign key(StoreName,Category) References store (StoreName,Category)
)

Demo on sqlfiddle.

【讨论】:

    猜你喜欢
    • 2016-08-18
    • 2013-12-08
    • 2010-11-30
    相关资源
    最近更新 更多