我确定我错过了一些简单的东西。
请求日志表:
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
引用表ResponseLog
和RequestLog
。CREATE TABLE
语句创建名为 requestlog
和 responselog
的表。尝试更改 ALTER TABLE
语句,使其使用大小写相同的表标识符。
此外,这可能是主要问题,引用的字段具有不同的数据类型。一个是 int,另一个是无符号的 int。数据类型必须匹配,否则字段可能会变得不一致。MySQL知道这一点,并防止您创建损坏的外键。