Я локально создаю свои таблицы базы данных, используя phpmyadmin. Я установил их движок на innoDB и создал отношения с внешним ключом, также используя phpmyadmin. Все работает локально.
Однако если я попытаюсь экспортировать эти таблицы на рабочий сайт, таблицы будут созданы как MYISAM, и с помощью индексов столбцов они не будут связаны как внешние ключи с другой таблицей.
Есть идеи, почему это произойдет?
Чтобы экспортировать таблицы, я просто захожу в Экспорт в PhpMyAdmin, это пример запроса, который он мне дает, который я запускаю на производственном сайте:
CREATE TABLE IF NOT EXISTS `foo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`barId` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `barId` (`barId`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ALTER TABLE `foo`
ADD CONSTRAINT `foo_ibfk_1` FOREIGN KEY (`barId`) REFERENCES `barTable` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION;
Это создает таблицу и создает индекс для barId, но механизмом таблицы является myisam вместо inno, и нет внешнего ключа для barId, ссылающегося на barTable.id