Добавление внешнего ключа типа char в mysql

У меня проблема с добавлением внешнего ключа в MySQL (с помощью phpmyadmin).

ALTER TABLE `production_x_country` ADD  FOREIGN KEY (`country`) REFERENCES `pmdb_0.3.12`.`countries`(`iso_3166_1`) ON DELETE CASCADE ON UPDATE CASCADE;

# 1215 - Невозможно добавить ограничение внешнего ключа

основываясь на некоторых исследованиях и тестах, я пришел к выводу, чтоCHAR (тотproduction_x_country.country поле)недопустимый тип поля внешнего ключа - хотя я не нашел никакого намека на это предположение в документации MySQL. если я изменю тип столбца на другой тип символа, напримерVARCHAR, процедура работает.

подобный вопрос был «решен» здесь, но этот связанный ответне о типовой проблеме но о коде страны, являющейся первичным ключом (что имеет смысл для меня):https://stackoverflow.com/a/1419235/4302731

описания таблиц:

CREATE TABLE IF NOT EXISTS `countries` (
  `iso_3166_1` char(3) NOT NULL,  <----- primary key to be referenced to
  `name` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ALTER TABLE `countries` ADD PRIMARY KEY (`iso_3166_1`);



CREATE TABLE IF NOT EXISTS `production_x_country` (
  `production` int(11) NOT NULL,
  `country` char(3) CHARACTER SET utf8 NOT NULL   <----- column that should hold the foreign key
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

Есть ли какое-либо решение (да, я мог бы продолжать использовать varchar, но это меня не устраивает)? и самое главное:есть ли объяснение?

Спасибо за помощь!

решена - см. мой собственный ответ ниже

Ответы на вопрос(1)

Ваш ответ на вопрос