尽管数据类型匹配,但外键约束的格式不正确



我在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会给您这个错误消息,而不是告诉您试图引用错误的表。

相关内容

  • 没有找到相关文章

最新更新