#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. На самом деле, как вы добавляете индекс? Все, что я вижу, — это как добавить ключ.