Я не могу добавить к своей таблице простой внешний ключ. Раньше мне удавалось добавлять внешние ключи, но только типа INT или BIGINT. Я пытаюсь сделать это типа VARCHAR и получаю ошибку 1215 с описанием, неспособным добавить ограничение внешнего ключа.
Команда, вызывающая сбой:
ALTER TABLE `TradingAccount`
ADD CONSTRAINT `email`
FOREIGN KEY (`owner_id`)
REFERENCES `User` (`email`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
И owner_id, и адрес электронной почты имеют тип данных VARCHAR (255).
Я использую MySQL Workbench и чувствую, что есть некоторая неправильная конфигурация, которая не позволяет мне использовать varchar для ограничения внешнего ключа? Мне нужно настроить mysqlworkbench для использования INNODB или это значение по умолчанию.
Любая помощь была бы замечательной, ура.
show create table user
,show create table TradingAccount
? Если хотите, вы можете удалить все неиспользуемые столбцы, но должны оставить каждый индекс / ключ вUser
в нем (у вас может не быть индекса наemail
там). - person Solarflare   schedule 31.08.2017