错误代码:1215。无法添加外键约束

时间:2016-11-18 05:33:47

标签: mysql sql foreign-keys

有人能告诉我为什么会收到此错误消息吗?当我尝试创建RENTAL表时,会弹出错误。

CREATE TABLE CAR_CLASS
(CAR_CLASS_ID INT(3) PRIMARY KEY,
CAR_CLASS CHAR(20),
RENTAL_RATE DECIMAL(4,2) );

CREATE TABLE CAR
(CAR_ID CHAR(25) PRIMARY KEY,
CAR_CLASS_ID INT(3),
CAR_COLOR CHAR(20),
FOREIGN KEY (CAR_CLASS_ID) REFERENCES CAR_CLASS(CAR_CLASS_ID) );

CREATE TABLE CUSTOMER_INFO
(CUSTOMER_ID CHAR(30) PRIMARY KEY,
CUSTOMER_FIRST CHAR(30),
CUSTOMER_LAST CHAR(30),
CUSTOMER_CC_NUMBER CHAR(16));


CREATE TABLE RENTAL
(RENTAL_ID INT(3) PRIMARY KEY,
RENTAL_DATE_OUT DATE,
RENTAL_DATE_IN DATE,
CAR_CLASS_ID INT(3),
CAR_ID CHAR(25),
CUSTOMER_ID CHAR(30),
FOREIGN KEY (CAR_CLASS_ID) REFERENCES CAR_CLASS(CAR_CLASS_ID),
FOREIGN KEY (CAR_ID) REFERENCES CAR(CAR_ID),
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER(CUSTOMER_ID) );

2 个答案:

答案 0 :(得分:1)

您的其他表名为CUSTOMER_INFO,而您的外键仅引用CUSTOMER。将上一个CREATE TABLE更改为:

CREATE TABLE RENTAL
(RENTAL_ID INT(3) PRIMARY KEY,
RENTAL_DATE_OUT DATE,
RENTAL_DATE_IN DATE,
CAR_CLASS_ID INT(3),
CAR_ID CHAR(25),
CUSTOMER_ID CHAR(30),
FOREIGN KEY (CAR_CLASS_ID) REFERENCES CAR_CLASS(CAR_CLASS_ID),
FOREIGN KEY (CAR_ID) REFERENCES CAR(CAR_ID),
FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMER_INFO(CUSTOMER_ID) );

答案 1 :(得分:0)

创建RENTAL表时表的名称是错误的。

查看代码的最后一行。

FOREIGN KEY(CUSTOMER_ID)引用CUSTOMER(CUSTOMER_ID)。

而不是客户,应该是CUSTOMER_INFO。

一切顺利:)