MySQL table avec une colonne de type varchar comme clé étrangère

Je suis en train de créer une table avec une colonne de type varchar comme clé étrangère mais que MySql me donne une erreur lors de la création de la table. Ma requête est comme ceci:

CREATE TABLE network_classes (
    id TINYINT(1) UNSIGNED NOT NULL AUTO_INCREMENT,
    category VARCHAR(80) NOT NULL,
    PRIMARY KEY(id),
    KEY `key_1` (`id`,`category`)
)
ENGINE=InnoDB;


CREATE TABLE networks (
    id TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    category VARCHAR(80) NOT NULL,
    director_id TINYINT(3) UNSIGNED NULL,
    director_name VARCHAR(100) NULL,
    description VARCHAR(1000) NULL,
    last_modified TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
    user_id SMALLINT UNSIGNED NULL,
    PRIMARY KEY(id),
    KEY `networks_fk1` (`category`),
    CONSTRAINT `networks_fk1` FOREIGN KEY (`category`) REFERENCES `network_classes` (`category`) ON DELETE NO ACTION,
    INDEX networks_index2471(name),
    INDEX networks_index2472(director_id, director_name)
)
ENGINE=InnoDB;

et j'obtiens cette erreur:

[Err] 1215 - Cannot add foreign key constraint

Je suis de l'utilisation de MySQL 5.6.12. Comment puis-je réécrire ma requête à résoudre ce problème?

OriginalL'auteur Hamid Ghorashi | 2013-08-22