创建带有外键错误号的 sql 表:150
Posted
技术标签:
【中文标题】创建带有外键错误号的 sql 表:150【英文标题】:creating sql table with foreign key error no: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);
【问题讨论】:
在未经编辑的版本中,您的问题是另一个名称(购物)的表格。您确定错误是因为商店或商店而发生的吗? 【参考方案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.
【讨论】:
以上是关于创建带有外键错误号的 sql 表:150的主要内容,如果未能解决你的问题,请参考以下文章
MySQL创建表:错误1005 errno:150“外键约束形成错误”
使用 mysql 工作台创建 CHAR 类型的外键时出错:错误 1005:无法创建表(错误号:150)
外键错误 - 错误 1005 (HY000) ... 无法创建表 ... `stored_on` (errno: 150)
SQLSTATE [HY000]:一般错误:1005 无法创建表`Data`.`company eligibilities`(errno:150“外键约束形成错误”)