Mysql 创建外键时出错#1215

Mysql 创建外键时出错#1215,mysql,foreign-key-relationship,Mysql,Foreign Key Relationship,不断出现错误#1215,但是如果我删除了关于为位置表创建外键的行,代码就会工作。假设您已经有一个定义为仓库的表,我认为问题是 仓库(warehouseID)和位置(warehouseID) 很可能,您已经将仓库表定义为(示例) 在您的位置表中,warehouseID是varchar(3) 确保引用列的两个表中的数据类型相同 如果我稍微改变一下你的桌子结构,就可以了 create table WAREHOUSE(warehouseID int not null primary key); 位置表

不断出现错误#1215,但是如果我删除了关于为位置表创建外键的行,代码就会工作。

假设您已经有一个定义为
仓库的表,我认为问题是
仓库(warehouseID)
位置(warehouseID)

很可能,您已经将仓库表定义为(示例)

在您的位置表中,
warehouseID
varchar(3)

确保引用列的两个表中的数据类型相同

如果我稍微改变一下你的桌子结构,就可以了

create table WAREHOUSE(warehouseID int not null primary key);

位置表有一个复合主键,所以对位置表的外键引用应该在主键中同时包含这两列。您仅使用locationID进行了定义。您能否仅使用locationID唯一地标识location表,然后更改主键


否则,将foreignkey引用更改为同时包含warehouseID,您就可以了。

您是否有表仓库?如果是,它看起来是什么样子?
create table PROD_LOCATION ( 
warehouseID varchar(3), 
locationID varchar(3), 
productNum int, 
quantityOnHand int, 
primary key(warehouseID,locationID,productNum), 
foreign key(warehouseID) references WAREHOUSE(warehouseID),
foreign key(locationID) references LOCATION(locationID),
foreign key(productNum) references PRODUCT(productNum) )
create table PICKING_LIST ( 
warehouseID varchar(3), 
locationID varchar(3), 
productNum int, 
requestNum int, 
quantityPicked int, 
datePicked date, 
pickerStaffID int, 
primary key(warehouseID,locationID,productNum,requestNum), 
foreign key(warehouseID) references WAREHOUSE(warehouseID), 
foreign key(locationID) references LOCATION(locationID),
foreign key(productNum) references PRODUCT(productNum), 
foreign key(requestNum) references STOCK_REQUEST(requestNum), 
foreign key(pickerStaffID) references EMPLOYEE(staffID) )
create table WAREHOUSE(warehouseID int not null primary key);
create table LOCATION ( 
warehouseID int,
fk_warehouseid int, 
locationID varchar(3), 
aisle int, shelf int, 
bin int, 
capacity double, 
primary key(warehouseID,locationID), 
foreign key(warehouseID) references WAREHOUSE(warehouseID) );