Я получаю ошибку при создании внешнего ключа.Ошибка 1822 и говорит следующее:
Код ошибки: 1822. Не удалось добавить ограничение внешнего ключа.Отсутствует индекс для ограничения 'Changes_ibfk_4' в ссылочной таблице 'Рецепт'
Я прочитал аналогичный вопрос, и проблема, как представляется, заключается в том, что столбец, для которого нам нужно создать внешний ключ, неиметь тот же тип данных, что и столбец, на который ссылается.
Однако я понятия не имею, как эти два столбца отличаются друг от друга.Оба являются первичными ключами с одинаковым именем и типом varchar (255).Ниже приведен код MySQL.
Есть ли разница между двумя столбцами "версия"?Или проблема в чем-то другом?
alter table Recipe drop column version;
alter table Changes drop column version;
alter table Recipe add column version varchar(255);
alter table Changes add column version varchar(255);
alter table Recipe drop primary key, add primary key(recipeID, version);
alter table Changes drop primary key, add primary key(newRecipeID, version);
alter table Changes add foreign key(version) references Recipe(version);