MySQL错误1215外键问题

MySQL错误1215外键问题,mysql,key,Mysql,Key,试图找出为什么我的代码出现1215错误。我已经搜索了线程,查看了一大堆对其他人有用的“解决方案”,但我似乎无法将这些修复应用到我的代码中。代码如下(编辑并放入我的全部代码): “#1215-无法添加外键约束” 所述错误(现在)与最后一个表OrderDetails 如果它盯着我看,我就看不见了——我已经连续16个小时在更大的数据库上工作了 非常感谢您的帮助:D基本上DATE是MYSQL的保留关键字 如果您想使用,可以尝试使用backtick,如 CREATE TABLE IF NOT EXISTS

试图找出为什么我的代码出现1215错误。我已经搜索了线程,查看了一大堆对其他人有用的“解决方案”,但我似乎无法将这些修复应用到我的代码中。代码如下(编辑并放入我的全部代码):

“#1215-无法添加外键约束”

所述错误(现在)与最后一个表
OrderDetails

如果它盯着我看,我就看不见了——我已经连续16个小时在更大的数据库上工作了


非常感谢您的帮助:D

基本上DATE是MYSQL的保留关键字

如果您想使用,可以尝试使用backtick,如

CREATE TABLE IF NOT EXISTS `Transaction`
(
TransactionID int(25),
`Date` 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 `Transaction`(TransactionID)
)ENGINE = InnoDB;

至少在5.5中,事务不是保留字

我删除了在事务表中存储表的外键引用,它起作用了。您确定没有忘记创建存储表吗?或者,如果存在,请确保两列的类型和大小相同,并且两个表具有相同的引擎


I thing Date字段也是MySQL的一个保留关键字。我在backtick中尝试了相同的错误,但在您讨论了事务是保留字之后,我尝试按如下方式更改事务->事务:创建表如果不存在事务(TransactionID int(25)、日期日期、StoreNumber int(15)、主键(TransactionID),外键(StoreNumber)引用Store(StoreID))引擎=InnoDB;这很有效,不过我也会更改“日期”,谢谢guys@user2915539,您是否检查了事务表和事务表是否相同?如果您对表进行了修改并运行这些
创建表(如果不存在)
,则可能会错误地无法重新创建已更改的表。如果不存在,则
创建表
,如果不同,则不
更改表
将addressType表放在地址之前,在我的上一个表上获得相同的错误:如果不存在,则创建表CustomerOrder(CustomerOrderID int(25)、OrderDate、StoreID int(15)、CustomerID int(25)、主键(CustomerOrderID)、外键(StoreID)引用存储(StoreID),外键(CustomerID)引用客户(CustomerID))引擎=InnoDB;如果不存在,则创建表OrderDetails(CDNumber int(8)、CustomerOrderID int(25)、DateArrival date、DatePickeUp date、Quantity int(8)、外键(CDNumber)引用CD(CDNumber)、外键(CustomerOrderID)引用CustomerOrder(CustomerOrderID))引擎=InnoDB;不确定?@user2915539确保引用的表和列存在。@Mihai据我所知:/@user2915539在原始帖子中发布所有表,很难上下滚动检查字段并指出错误所在。@Mihai已经完成,其他表也开始出现1215个错误,这真的让我头疼:/
CREATE TABLE IF NOT EXISTS `Transaction`
(
TransactionID int(25),
`Date` 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 `Transaction`(TransactionID)
)ENGINE = InnoDB;