2016-06-14 60 views
0

我有以下架构:WilliamsSCW和我不断收到错误:1215无法为结算表添加外键约束。MySQL错误代码1215

请帮忙。我该怎么办?

Create database WilliamsSCW; 

Create table WilliamsSCW.Login 
(
UserName varchar(50) Not Null Primary Key, 
Password varchar(50) Not Null); 

Create table WilliamsSCW.Employee 
(
employeeID int(8) Not Null Primary Key, 
employeeFName varchar(25), 
employeeLName varchar(25)); 

Create table WilliamsSCW.Customer 
(
custID int(8) Not Null Primary Key, 
custFName varchar(25), 
custLName varchar(25), 
custAddress varchar(30), 
custCity varchar(30), 
custState varchar(30), 
custZip int(5), 
custPhone BIGINT(10), 
custEmail text); 

Create table WilliamsWSC.Order1 #order is a reserved key word in MySQL and can't be used 
(
orderID int(20) Not Null Primary Key, 
orderDesc varchar(30), 
orderType varchar(20), 
orderCost int(10), 
orderQuantity int(6), 
orderContent text, 
orderStatus varchar(10), 
orderDate TimeStamp, 
orderShipDate Date, 
orderDeposit decimal(10,2), 
mediaID BIGINT(20), 
custID int(8), 
employeeID int(8), 
foreign key(mediaID) REFERENCES Media_Catalog(mediaID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE); 

Create table WilliamsSCW.Billing 
(
billingID int(8) Not Null Primary Key, 
billingDate TimeStamp Not Null, 
billDeposit decimal(10,2), 
billAmt int(8), 
employeeID int(8), 
custID int(8), 
orderID int(20), 
foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE); 

Create table WilliamsSCW.Media_Catalog 
(
mediaID BIGINT(20) Not Null Primary Key, 
mediaCatalog varchar(30), 
mediaPrice decimal(10,2), 
mediaDesc text, 
mediaJob varchar(20), 
mediaAmntStock int(10)); 

Create table WilliamsSCW.Reason 
(
onholdID int(20) Not Null Primary Key, 
onholdDesc varchar(100), 
orderID int(20), 
foreign key (orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE); 

谢谢

+1

嗨,你为什么要求表 “order1” 不同的数据库? WilliamsWSC而不是WilliamsSCW –

+1

这是一个错误。我注意到并将它固定到WilliamsSCW。我仍然收到错误1215 – Smokey0101

+0

我想出了问题,语法问题。 – Smokey0101

回答

0

你必须把的DDL WilliamsSCW.Media_Catalog Order1前:

Create database WilliamsSCW; 

Create table WilliamsSCW.Login 
(
UserName varchar(50) Not Null Primary Key, 
Password varchar(50) Not Null); 

Create table WilliamsSCW.Employee 
(
employeeID int(8) Not Null Primary Key, 
employeeFName varchar(25), 
employeeLName varchar(25)); 

Create table WilliamsSCW.Customer 
(
custID int(8) Not Null Primary Key, 
custFName varchar(25), 
custLName varchar(25), 
custAddress varchar(30), 
custCity varchar(30), 
custState varchar(30), 
custZip int(5), 
custPhone BIGINT(10), 
custEmail text); 

Create table WilliamsSCW.Media_Catalog 
(
mediaID BIGINT(20) Not Null Primary Key, 
mediaCatalog varchar(30), 
mediaPrice decimal(10,2), 
mediaDesc text, 
mediaJob varchar(20), 
mediaAmntStock int(10)); 

Create table WilliamsSCW.Order1 #order is a reserved key word in MySQL and can't be used 
(
orderID int(20) Not Null Primary Key, 
orderDesc varchar(30), 
orderType varchar(20), 
orderCost int(10), 
orderQuantity int(6), 
orderContent text, 
orderStatus varchar(10), 
orderDate TimeStamp, 
orderShipDate Date, 
orderDeposit decimal(10,2), 
mediaID BIGINT(20), 
custID int(8), 
employeeID int(8), 
foreign key(mediaID) REFERENCES Media_Catalog(mediaID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE); 

Create table WilliamsSCW.Billing 
(
billingID int(8) Not Null Primary Key, 
billingDate TimeStamp Not Null, 
billDeposit decimal(10,2), 
billAmt int(8), 
employeeID int(8), 
custID int(8), 
orderID int(20), 
foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, 
foreign key(orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE); 

Create table WilliamsSCW.Reason 
(
onholdID int(20) Not Null Primary Key, 
onholdDesc varchar(100), 
orderID int(20), 
foreign key (orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE); 
相关问题