La table référencée est 'groupe' (InnoDB).Erreur Mysql: 1215 Impossible d'ajouter une contrainte de clé étrangère
Il possède une colonne 'id' définie comme INT (11), non annulable, incrémentation automatique, la clé primaire
table de référence est de l'utilisateur (InnoDB)
Il a 'colonne group_id' défini comme étant INT (11), non nullable.
Dans le tableau référencement est déjà un index unique basé sur la colonne 'group_id'
Mais WHN exécution
ALTER TABLE `user`
ADD CONSTRAINT `user_group` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`)
ON DELETE CASCADE
ON UPDATE CASCADE
Je suis une erreur
error: 1215 Cannot add foreign key constraint
-je ajouter la décharge db
CREATE TABLE IF NOT EXISTS `groups` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`language` varchar(255) NOT NULL,
`order` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`group_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Liste de vérification
- Est-ce que Db InnoDB? Oui
- Est-ce que toutes les tables InnoDB? Oui
- L'index unique est-il présent sur le tableau de référence? Oui
- Sont référencés et référencés la colonne exactement du même type? Oui
La question est simple: Pourquoi ne puis-je pas créer cette clé étrangère?
MISE À JOUR 1: J'essayé de remplacer avec SUPPRIMER CASCADE ON ON SUPPRIMER Réglementer et rien ne change, aussi j'ai essayé de supprimer ON SUPPRIMER et ON UPDATE un rien ne change
1: Pourquoi? 2. J'ai essayé avec delete (c'est plus utile si je ne peux pas supprimer des groupes non vides), mais j'ai la même erreur 3: Même en supprimant ON DELETE et ON UPDATE le problème est toujours là, impossible de créer – realtebo
vérifier ma réponse éditée. –
:(Merci .. Je n'ai jamais vraiment utilisé la fin 's' dans le nom de la table ... – realtebo