简单添加外键返回 #1215 不能添加外键约束



我确定我错过了一些简单的东西。

请求日志表:

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

响应日志表:

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引用表ResponseLogRequestLogCREATE TABLE语句创建名为 requestlogresponselog 的表。尝试更改 ALTER TABLE 语句,使其使用大小写相同的表标识符。

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

最新更新