Clé étrangères PHPMYADMIN
Bonjour,
J'aimerais insérer des clés étrangères pour lier plusieurs colonnes, mais j'ai une erreurs quand je veux la mettre en place.
Mes tables sont en INNODB.
Le code en question :
Code:
1 2
| ALTER TABLE `europacimes_page_sommets` ADD CONSTRAINT `FK_Sommet` FOREIGN KEY (`id_sommet`) REFERENCES `nathanchkxbde`.`europacimes_sommets`(`id_sommet`);
ALTER TABLE `europacimes_sommets` ADD CONSTRAINT `FK_Pays` FOREIGN KEY (`id_pays`) REFERENCES `nathanchkxbde`.`europacimes_pays`(`id_pays`); |
Le code de création de la table :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| CREATE TABLE IF NOT EXISTS `europacimes_page_sommets` (
`id` int(10) NOT NULL,
`id_sommet` int(10) NOT NULL,
`titre` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
`contenue` varchar(255) CHARACTER SET utf8 NOT NULL,
`date` date NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `europacimes_pays` (
`id_pays` int(10) NOT NULL,
`nom` varchar(60) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `europacimes_sommets` (
`id_sommet` int(10) NOT NULL,
`id_pays` int(10) NOT NULL,
`nom` varchar(50) NOT NULL,
`actif` tinyint(1) NOT NULL DEFAULT '0'
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
ALTER TABLE `europacimes_page_sommets`
ADD PRIMARY KEY (`id`,`id_sommet`),
ADD KEY `id_sommet` (`id_sommet`);
ALTER TABLE `europacimes_pays`
ADD PRIMARY KEY (`id_pays`);
ALTER TABLE `europacimes_sommets`
ADD PRIMARY KEY (`id_sommet`,`id_pays`),
ADD KEY `id_pays` (`id_pays`); |
J'ai aussi essayé avec la "Vue relationnelle" de PhpMyAdmin, mais il veux que je sélectionne des clés primaires Oo D'aprés ce que j'ai appris, pour une FK, il faut lier un PK d'un table et un colonne 'non PK' de l'autre ?!
J'ai ajouté un index sur id_sommet et id_pays, je peux maintenant le sélectionner dans "Vue relationnelle", mais même erreur:
Code:
Cannot add or update a child row: a foreign key constraint fails (`nathanchkxbde`.`#sql-178e_47ddd91`, CONSTRAINT `FK_Sommet` FOREIGN KEY (`id_sommet`) REFERENCES `europacimes_sommets` (`id_sommet`))
Merci pour votre aide ;)