试图弄清楚为什么我的代码会出现 1215 错误。我搜索了线程,查看了一大堆并尝试了对其他人有用的“解决方案”,但我似乎无法将这些修复应用于我的代码。代码如下(编辑把我的整个代码放进去):
CREATE DATABASE IF NOT EXISTS ERUS30114465;
USE ERUS30114465;
CREATE TABLE IF NOT EXISTS Employee
(
EmployeeID int(15),
PRIMARY KEY(EmployeeID),
FirstName varchar(40),
LastName varchar(40),
DateStarted date,
TaxNum int(9),
StoreID int(15)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Store
(
StoreID int(15),
PRIMARY KEY(StoreID),
Name varchar(40),
Email varchar(60),
Phone int(10),
Fax int(20),
StoreManager int(15),
SupervisingStoreID int(15),
FOREIGN KEY(SupervisingStoreID) REFERENCES Store(StoreID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Artist
(
ArtistID int(25),
PRIMARY KEY(ArtistID),
FirstName varchar(40),
LastName varchar(40),
DOB date,
Website varchar(255)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Category
(
CategoryID char(1) PRIMARY KEY,
Description varchar(255)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS CD
(
CDNumber int(8),
CategoryID char(1),
Length int(6),
NumberOfTracks int(8),
ReleaseDate date,
ReorderLevel int(8),
Title varchar (255),
PRIMARY KEY(CDNumber),
FOREIGN KEY(CategoryID) REFERENCES Category(CategoryID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS CDArtist
(
ArtistID int(25),
CDNumber int(8),
FOREIGN KEY(ArtistID) REFERENCES Artist(ArtistID),
FOREIGN KEY(CDNumber) REFERENCES CD(CDNumber)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Transactions
(
TransactionID int(25),
TransDate date,
StoreNumber int(15),
PRIMARY KEY(TransactionID),
FOREIGN KEY(StoreNumber) REFERENCES Store(StoreID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS TransactionDetails
(
CDNumber int(8),
TransactionID int(25),
Quantity int(8),
Discount int(2),
FOREIGN KEY (CDNumber) REFERENCES CD(CDNumber),
FOREIGN KEY (TransactionID) REFERENCES Transactions (TransactionID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Inventory
(
CDNumber int(8),
StoreID int(15),
QuantityOnHand int(8),
QuantityOnOrder int(8),
FOREIGN KEY (CDNumber) REFERENCES CD(CDNumber),
FOREIGN KEY (StoreID) REFERENCES Store(StoreID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Address
(
Tid char(1),
PRIMARY KEY(Tid),
AddressID int(30),
AddressType varchar(60),
FOREIGN KEY(AddressType) REFERENCES AddressType(AddressType),
Street varchar(255),
City varchar(255),
State varchar(255)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS AddressType
(
AddressType varchar(60),
PRIMARY KEY (AddressType),
Description varchar(255)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS Customer
(
CustomerID int(25),
PRIMARY KEY(CustomerID),
FirstName varchar(60),
LastName varchar(60),
Phone int(10)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS CDPrice
(
EffectiveFrom date,
Price int(5),
Reason varchar(255),
CDNumber int(8),
PRIMARY KEY(EffectiveFrom),
FOREIGN KEY(CDNumber) REFERENCES CD(CDNumber)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS CustomerOrder
(
CustomerOrderID int(25),
OrderDate date,
StoreID int(15),
CustomerID int(25),
PRIMARY KEY(CustomerOrderID),
FOREIGN KEY(StoreID) REFERENCES Store(StoreID),
FOREIGN KEY(CustomerID) REFERENCES Customer(CustomerID)
)ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS OrderDetails
(
CDNumber int(8),
CustomerOrderID int(25),
DateArrived date,
DatePickedUp date,
Quantity int(8),
FOREIGN KEY(CDNumber) REFERENCES CD(CDNumber),
FOREIGN KEY(CustomerOrderID) REFERENCES CustomerOrder(CustomerOrderID)
)ENGINE = InnoDB;
"#1215 - Cannot add foreign key constraint "
所述错误(现在)与最后一张表有关OrderDetails
如果它盯着我的脸,我看不到它 -_- 我已经在更大的数据库上工作了大约 16 个小时......
非常感谢任何帮助:D