2015-12-10 34 views
0

由於某種原因,我得到以下錯誤,我知道它與我剛剛添加的「使用Truck」的外鍵有關。但是,我不知道我做錯了什麼。我只包含了我認爲對這個問題很重要的表格。錯誤:無法創建表'Goober.Employee'(錯誤:150)

CREATE TABLE Employee (
EmployeeID INT AUTO_INCREMENT, 
Name VARCHAR(90) NOT NULL, 
UsesTruck CHAR(20) NULL, 
FOREIGN KEY (UsesTruck) REFERENCES Truck(LicensePlate), 
PRIMARY KEY (EmployeeID)); 


CREATE TABLE Truck (
LicensePlate CHAR(20) NULL, 
color VARCHAR(45) NULL, 
capacity VARCHAR(45) NULL, 
PRIMARY KEY (LicensePlate)); 
CREATE TABLE Shifts (
ShiftTime VARCHAR(15) NOT NULL, 
PRIMARY KEY (ShiftTime)); 



CREATE TABLE Reservation (
ReservNum INT NOT NULL, 
ReserveDate VARCHAR(45) NULL, 
PickupTime VARCHAR(45) NOT NULL, 
NumOfPassengers INT NULL, 
sheduledTime VARCHAR(45) NULL, 
ActualPickupTime VARCHAR(45), 
ActualTime VARCHAR(45), 
PricePaid VARCHAR(45), 
DriverHourlyRate DECIMAL(7,2) NULL, 
PassEmployeeHourlyRate DECIMAL (7,2) NULL, 
DriverSalary VARCHAR(10), 
PassEmployeeSalary VARCHAR(10), 
Customer_CustomerID INT, 
Truck_LicensePlate char(20) NULL, 
Employee_EmployeeID_Driver INT, 
Location_Address_Pickup VARCHAR(100), 
Employee_EmployeeID_Passenger INT, 
Location_Address_Drop VARCHAR(100), 
PRIMARY KEY (ReservNum), 
FOREIGN KEY (Customer_CustomerID) REFERENCES Customer (CustomerID), 
FOREIGN KEY (Truck_LicensePlate) REFERENCES Truck (LicensePlate), 
FOREIGN KEY (Employee_EmployeeID_Driver) REFERENCES Employee (EmployeeID), 
FOREIGN KEY (Location_Address_Pickup) REFERENCES Location (Address), 
FOREIGN KEY (Employee_EmployeeID_Passenger) REFERENCES Employee (EmployeeID), 
FOREIGN KEY (Location_Address_Drop) REFERENCES Location (Address)); 
+0

我知道這一切工作沒有在您的預訂表中的外鍵,然後添加一個,它窒息。試着確保你的FK引用的所有表已經存在(明顯,我知道)並且雙重和三重檢查表和列的名稱是否區分大小寫,並且FK關係的數據類型是相同的。 https://dev.mysql.com/doc/refman/5.7/en/innodb-error-codes.html可能會有幫助。 還有一些關於你的模式的其他問題,但這不是你的問題( - :祝你好運。 – David

回答

0

嘗試先運行create truck table。

+0

我爲他嘗試過,沒有運氣。 – David

相關問題