mysql - 查询错误 (1215) 尝试添加到飞轮数据库时无法添加外键约束
问题描述
我正在尝试添加几个表以获取一些我正在添加到飞轮站点的兼容性信息,当我尝试生成表时,我收到“查询错误(1215)无法添加外键约束。” 这足够模糊,让我不知道为什么。据我所知,根据我的研究,我的语法很好,并且我作为外键添加的表/列组合肯定存在。我对 mySQL 和 flywheel 作为一个平台都很陌生,所以这可能是非常简单的事情,我只是不知道,如果是这种情况,我道歉
CREATE TABLE `products` (
`productsID` INT,
`productName` VARCHAR(45) NOT NULL,
`ios9` DOUBLE NULL,
`ios10` DOUBLE NULL,
`ios11` DOUBLE NULL,
`ios12` DOUBLE NULL,
`Notes` VARCHAR(45) NULL,
`Android Compatible` BINARY NULL,
`Web App Screen size` VARCHAR(45) NULL,
`Supported Browsers` VARCHAR(45) NULL,
`Web App Minimum Resolution` VARCHAR(45) NULL,
`Web App Aspect Ratio` VARCHAR(45) NULL,
PRIMARY KEY (`productsID`),
UNIQUE INDEX `ProductsID_UNIQUE` (`productsID` ASC),
INDEX `compatibilityID_idx` (
`ios9` ASC,
`ios10` ASC,
`ios11` ASC,
`ios12` ASC
),
FOREIGN KEY (`ios9`, `ios10`, `ios11`, `ios12`) REFERENCES `compatibilityValues` (
`compatibilityId`,
`compatibilityId`,
`compatibilityId`,
`compatibilityId`
) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE = InnoDB
解决方案
一个朋友帮我解决了这个问题!
事实证明,默认情况下,mySQL 试图一次性完成所有 FK 语句(我使用了可视化设计器),而飞轮不喜欢这样。
像这样分解 FK 使它起作用:
FOREIGN KEY (`ios9`) REFERENCES `compatibilityValues` (
`compatibilityId` ) ,
FOREIGN KEY (`ios10`) REFERENCES `compatibilityValues` (
`compatibilityId` ) ,
FOREIGN KEY (`ios11`) REFERENCES `compatibilityValues` (
`compatibilityId` ) ,
FOREIGN KEY (`ios12`) REFERENCES `compatibilityValues` (
`compatibilityId` )
推荐阅读
- list - Flutter:将列表保存在本地
- powerbi - Power BI DAX:使用行对筛选器上下文计数不同的度量
- mlr3 - 金融时间序列的 mlr3 重采样扩展包
- tensorflow - 使用梯度带自动区分张量流并将其合并到 keras NN
- flutter - 有没有办法在状态类中调用状态类?
- python - 我在 cv2 人脸识别器中遇到错误 - 您需要多个样本来学习模型。在函数'cv::face::LBPH::train'中
- java - 如何确保具有无限流的 Flux 在给定时间内完成?
- python - 3603 Azure 数据工厂上的 Azure 函数中的用户配置问题错误
- javascript - 无法访问 DOM
- ios - Increase the collectionView height constraint dynamically for the horizontal scrolling collectionView