【发布时间】:2018-09-09 00:24:51
【问题描述】:
我不断收到此错误,我对所有表使用了 InnoDB,menuID 和 customerID 是各自表中的主键,并且数据类型似乎相同。 ERROR 1215 (HY000): 无法添加外键约束
对不起,如果我遗漏了一些简单的东西,我是 mySQL 的新手。
create table customers(
customerID int not null auto_increment primary key,
LastName varchar(255) not null,
FirstName varchar(255) not null,
email varchar(255) not null,
password varchar(255),
phone varchar(255),
creditCard varchar(255),
address varchar(255),
time timestamp)
Engine=InnoDB;
create table menu(
menuID int not null auto_increment primary key,
typeID int,
itemName varchar(255),
price varchar(255))
Engine=InnoDB;
create table orders(
orderID int not null,
customerID int not null,
menuID int not null,
PRIMARY KEY (orderID, customerID, menuID),
FOREIGN KEY (customerID) REFERENCES customers(customerID) on delete set null on update cascade,
foreign key (menuID) references menu(menuID) on delete set null on update cascade )
Engine=InnoDB;
【问题讨论】:
-
编辑您的问题并添加返回的完整错误消息。
-
来自this old answer:尝试
SHOW ENGINE INNODB STATUS;了解更多信息。当您的列不为空时,最好的猜测是“更新时设置为空”。
标签: mysql foreign-keys