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

Simple add foreign key returns #1215 cannot add foreign key constraint

我确信我遗漏了一些简单的东西。

请求日志table:

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

响应日志table:

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)

别拍我,我错过了什么?

ALTER TABLE 引用 tables ResponseLogRequestLog。您的 CREATE TABLE 语句创建了名为 requestlogresponselog 的 table。尝试更改 ALTER TABLE 语句,使其使用大小写相同的 table 标识符。

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