我在MariaDB中有数据,正在尝试运行ALTER TABLE:
ALTER TABLE `readings` ADD FOREIGN KEY (`SiteID`) REFERENCES station(`SiteID`);
两个表都已填充,我已确保数据类型相同。然而,我不断收到这个错误,说外键约束的形式不正确。
不确定我还可能做错什么。我也运行了SHOW ENGINE INNODB STATUS,但它返回一个空集。
表说明:
DESCRIBE readings;
ReadingID bigint(20) NO PRI NULL
Date Time datetime YES NULL
NOx double YES NULL
NO2 double YES NULL
NO double YES NULL
PM10 double YES NULL
VPM10 double YES NULL
VPM10 double YES NULL
NVPM2.5 double YES NULL
PM2.5 double YES NULL
VPM2.5 double YES NULL
CO double YES NULL
O3 double YES NULL
SO2 double YES NULL
Temperature double YES NULL
RH double YES NULL
Air Pressure double YES NULL
DateStart datetime YES NULL
DateEnd datetime YES NULL
Current tinyint(1) YES NULL
Instrument Type text YES NULL
SiteID bigint(20) YES NULL
DESCRIBE stations;
SiteID bigint(20) NO PRI NULL
Location text YES NULL
geo_point_2d text YES NULL
问题是您在语句中引用了一个不存在的表(station
而不是stations
(。
试试这个:
ALTER TABLE `readings` ADD FOREIGN KEY (`SiteID`) REFERENCES stations(`SiteID`);
不幸的是,MariaDB会给您这个错误消息,而不是告诉您试图引用错误的表。