mysql - 查询错误 (1215) 尝试添加到飞轮数据库时无法添加外键约束

标签 mysql foreign-keys constraints

我正在尝试添加几个表以获取要添加到飞轮站点的一些兼容性信息,当我尝试生成表时,我收到“查询错误(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

最佳答案

friend 帮我解决了这个问题!

事实证明,默认情况下,mySQL 试图一次性完成所有 FK 语句(我使用了可视化设计器),而 Flywheel 不喜欢这样。

像这样分解 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`  ) 

关于mysql - 查询错误 (1215) 尝试添加到飞轮数据库时无法添加外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54579224/

相关文章:

php - 了解 pdo mysql 事务

mysql - ON DELETE CASCADE 删除额外的行

php - 工具提示不显示结果

mysql - 添加外键但出现约束违反错误

regex - ASP.NET MVC 正则表达式路由约束

mysqlslap - [错误] 使用 cmd 中的 INSERT 查询时

MySQL 删除表

c# - SQL 表引用多个外键,同时定义顺序并保证参照完整性

ios - 动态单元格高度的自动布局约束

java - 如何在 Spring 3.x 中使用 Hibernate @Valid 约束?