Возникли проблемы с добавлением внешнего ключа в HeidiSQL (Ошибка 1215)

#sql #heidisql

Вопрос:

Я перепробовал почти все, но я получаю ошибку 1215 при попытке создать внешний ключ в дочерней таблице, которая у меня есть. Вот мои таблицы:

 CREATE TABLE `Con` (
  `ConID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(250) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `Website` varchar(500) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `FirstYear` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`ConID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

CREATE TABLE `ConEvent` (
  `EventID` int(11) NOT NULL AUTO_INCREMENT,
  `ConID` int(11) NOT NULL,
  `DateStart` date DEFAULT NULL,
  `DateEnd` date DEFAULT NULL,
  `Year` tinyint(4) DEFAULT NULL,
  `Venue` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
  `Address` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
  `City` tinytext COLLATE utf8_unicode_ci,
  `StateProvince` tinytext COLLATE utf8_unicode_ci,
  `Country` tinytext COLLATE utf8_unicode_ci,
  PRIMARY KEY (`EventID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
 

Вот мой синтаксис:

 ALTER TABLE ConEvent
ADD FOREIGN KEY (ConID) REFERENCES Con(ConID);
 

Я не могу SHOW ENGINE INNODB STATUS; , потому что я не суперпользователь (ошибка 1227). Я попытался сделать себе такой же, но не смог.

Комментарии:

1. ConID int(11) NOT NULL REFERENCES Con(ConID)

2. Оператор alter, который у вас есть, выглядит для меня нормально, но в ConEvent таблице ConID для столбца необходим индекс.

3. @PaulT. Я добавил ключ к ConID в таблицу событий, и он все еще не работает.

4. Какая версия heidisql у вас есть?

5. Таблицы уже созданы, так что, может быть, в этом и проблема? Похоже, я должен быть в состоянии добавить это постфактум. Ошибка связана с оператором ALTER. На самом деле, как вы добавляете индекс? Все, что я вижу, — это как добавить ключ.