Почему у меня возникает такая ошибка на phpmyadmin: Ошибка создания внешнего ключа при ревизии (проверьте типы данных)? - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь создать внешние ключи в phpmyadmin, но получаю эту ошибку:

Ошибка создания внешнего ключа при проверке (проверьте типы данных)

I не понимаю, потому что типы данных равны. Итак, я хочу создать внешний ключ от «акустической обработки» до «спецификаций фильтров», который содержит тег, предложение и ревизию. Но я получаю ошибку, о которой упомянул.

Это мои таблицы:

  CREATE TABLE `offer` (
  `projectid` varchar(20) NOT NULL,
  `customer` varchar(255) NOT NULL,
  `creator` varchar(255) NOT NULL,
  `date` date NOT NULL,
  `revision` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `offer`
  ADD PRIMARY KEY (`projectid`,`revision`); 



CREATE TABLE `filterspecifications` (
      `tag` varchar(100) NOT NULL,
      `gasFlow` double NOT NULL,
      `dustToHandle` double NOT NULL,
      `offerid` varchar(20) NOT NULL,
      `selectedFilter` varchar(20) NOT NULL,
      `revision` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    ALTER TABLE `filterspecifications`
          ADD PRIMARY KEY (`tag`,`offerid`,`revision`),
          ADD KEY `offerid` (`offerid`,`revision`);
        ALTER TABLE `filterspecifications`
        ADD CONSTRAINT `filterspecifications_ibfk_1` 
    FOREIGN KEY (`offerid`,`revision`) REFERENCES `offer` (`projectid`, `revision`) ON DELETE CASCADE ON UPDATE CASCADE;


CREATE TABLE `acoustictreatment` (
      `tag` varchar(100) NOT NULL,
      `offerid` varchar(20) NOT NULL,
      `outputFanSilencer` tinyint(1) NOT NULL,
      `fanAcousticInsulation` tinyint(1) NOT NULL,
      `revision` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
    ALTER TABLE `acoustictreatment`
      ADD PRIMARY KEY (`tag`,`offerid`,`revision`);

1 Ответ

0 голосов
/ 24 января 2020

Решение, которое я нашел, состоит в том, чтобы удалить таблицу «акустическая обработка» и создать ее заново с внешним ключом с самого начала. Потому что я пытался создать все таблицы и затем создать внешние ключи, но это не сработало для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...