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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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