Ошибка в запросе (1215) Невозможно добавить ограничение внешнего ключа при попытке добавить в маховик БД - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь добавить пару таблиц для некоторой информации о совместимости, которую я добавляю на сайт маховика, и когда я пытаюсь сгенерировать полученную таблицу "Ошибка в запросе (1215) Невозможно добавить ограничение внешнего ключа«.что достаточно смутно, чтобы я не знал почему.Насколько я могу судить, основываясь на моих исследованиях, мой синтаксис в порядке, и комбинирование таблицы / столбца, которое я добавляю как внешний ключ, определенно существует.Я довольно плохо знаком с mySQL и маховиком в качестве платформы, так что это может быть что-то очень простое, я просто не знаю, и если это так, я прошу прощения

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

1 Ответ

0 голосов
/ 07 февраля 2019

Друг помог мне разобраться в этом!

оказывается, что по умолчанию mySQL пытался выполнить все операторы 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`  ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...