У меня есть странный. Я не могу создать таблицу, используя следующее:
Таблица Users уже существует в БД , необходимо добавить только UserTimeZones, и это не удается.
CREATE TABLE `Users` (
`AccessFailedCount` int(11) NOT NULL,
`EmailConfirmed` bit(1) NOT NULL,
`Id` char(36) NOT NULL,
`NormalizedUserName` varchar(256) DEFAULT NULL,
`NormalizedEmail` varchar(256) DEFAULT NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `UserNameIndex` (`NormalizedUserName`),
KEY `EmailIndex` (`NormalizedEmail`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `UserTimeZones` (
`Id` char(36) NOT NULL,
`UserId` char(36) NOT NULL,
`TimeZoneOffsetInSeconds` int NOT NULL,
`LastUpdatedAt` datetime(6) NOT NULL,
CONSTRAINT `PK_UserTimeZones` PRIMARY KEY (`Id`),
CONSTRAINT `FK_UserTimeZones_Users_UserId` FOREIGN KEY (`UserId`) REFERENCES `Users` (`Id`) ON DELETE CASCADE
);
SHOW ENGINE INNODB STATUS;
Вот что показывает статус:
------------------------ ПОСЛЕДНЯЯ ОШИБКА ИНОСТРАННЫХ КЛЮЧЕЙ
2018-11-09 11:26:44 0x7f832c523700 Ошибка в ограничении внешнего ключа
Таблица пятьдесят / UserTimeZones:
ИНОСТРАННЫЙ КЛЮЧ (UserId
) ССЫЛКИ Users
(Id
) НА УДАЛЕННОМ КАСКАДЕ):
Не удается найти индекс в ссылочной таблице, в которой есть ссылка
столбцы отображаются как первые столбцы или типы столбцов в таблице и
ссылочная таблица не соответствует ограничению.
Обратите внимание, что тип внутренней памяти ENUM и SET изменился в таблицах
созданный с> = InnoDB-4.1.12, и такие столбцы в старых таблицах не могут
ссылки на такие столбцы в новых таблицах.
Пожалуйста, обратитесь к
http://dev.mysql.com/doc/refman/5.7/en/innodb-foreign-key-constraints.html
для правильного определения внешнего ключа.
Итак, у меня есть классическое «Невозможно добавить ограничение внешнего ключа».
Что я пробовал:
- Размещение столбца Users.Id в качестве первого столбца: ничего не меняется
- Типы колонок одинаковые, двигатели тоже ...
- Применение миграции без данных в БД -> это работает
- Запуск сценария в БД без данных -> все еще не работает ...
В чем проблема?
Не уверен, что это важно, но я использую ядро Entity Framework.