2016-11-18 107 views
0

有人能告诉我为什么我收到此错误消息吗?当我尝试创建RENTAL表时,弹出错误。错误代码:1215.无法添加外键约束

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)); 

回答

1

您的其他表称为CUSTOMER_INFO,而你的外键引用只是客户。将您的最后一个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)); 
0

创建租用表时表的名称是错误的。

看看你的代码的最后一行。

FOREIGN KEY(CUSTOMER_ID)REFERENCES CUSTOMER(CUSTOMER_ID)。

而不是客户,它应该是CUSTOMER_INFO。

所有最好的:)

+0

OMG谢谢你这么多!我正在寻找错误并最终成长起来! –

+0

这是一个愚蠢的错误,它可以发生在任何人身上。 –

相关问题