简单添加外键返回#1215无法添加外键约束

时间:2015-01-09 21:47:28

标签: mysql foreign-keys foreign-key-relationship

我确信我错过了一些简单的事情。

RequestLog表:

CREATE TABLE `requestlog` (
 `RequestID` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `RequestName` varchar(30) NOT NULL,
 `RequestData` varchar(150) NOT NULL,
 `RequestDate` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `Version` varchar(15) NOT NULL,
 PRIMARY KEY (`RequestID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

ResponseLog表:

CREATE TABLE `responselog` (
 `ResponseID` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `FK_RequestID` int(10) NOT NULL,
 `ResponseText` text NOT NULL,
 PRIMARY KEY (`ResponseID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

尝试使用

在ResponseLog.FK_RequestID上添加外键
ALTER TABLE ResponseLog
ADD FOREIGN KEY (FK_RequestID) REFERENCES RequestLog(RequestID)

不要开枪,我错过了什么?

1 个答案:

答案 0 :(得分:1)

ALTER TABLE引用表ResponseLogRequestLog。您的CREATE TABLE语句会创建名为requestlogresponselog的表。尝试更改ALTER TABLE语句,以便它使用具有相同大小写的表标识符。

此外,它可能是主要问题,引用的字段具有不同的数据类型。一个是int,另一个是unsigned int。数据类型必须匹配,否则字段可能变得不一致。 MySQL知道这一点并阻止您创建损坏的外键。