Bonjour tt le monde,
Voilà je vous expose le problème. Je prends le cas simple ou je garde deux tables. Une table acheter et une table particulier.
Dans la table acheter, ma PK est id_achat et ma FK est id_particulier. Cette table se présente comme ça :
Les contraintes pour la table `acheter` :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE `acheter` ( `id_achat` int(11) NOT NULL auto_increment, `date_achat` date NOT NULL default '0000-00-00', `etat_achat` varchar(50) NOT NULL default '', `groupe_achat` varchar(50) NOT NULL default '', `id_particulier` int(11) NOT NULL default '0', `id_produit` int(11) NOT NULL default '0', PRIMARY KEY (`id_achat`), KEY `id_particulier` (`id_particulier`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Dans ma table particulier ma PK est id_particulier comme vous pouvez le voir ici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE `acheter` ADD CONSTRAINT `acheter_ibfk_1` FOREIGN KEY (`id_particulier`) REFERENCES `particulier` (`id_particulier`);
Il n’y a pas de contraintes ici.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CREATE TABLE `particulier` ( `id_particulier` int(11) NOT NULL auto_increment, `nom_particulier` varchar(50) NOT NULL default '', `prenom_particulier` varchar(50) NOT NULL default '', `adresse_particulier` varchar(100) NOT NULL default '', `codepostal_particulier` int(11) NOT NULL default '0', `ville_particulier` varchar(50) NOT NULL default '', `telephone_particulier` int(11) NOT NULL default '0', `email_particulier` varchar(50) NOT NULL default '', `pass_particulier` varchar(10) NOT NULL default '', PRIMARY KEY (`id_particulier`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Dans la 1ere table acheter, id_particulier référence la PK de la table particulier. Mon problème est que lorsque je veux insérer des données dans ma table acheter j’ai l’erreur suivante :
#1216 - Impossible d'ajouter un enregistrement fils : une contrainte externe l'empeche.
Pour info, mes 2 tables sont bien en InnoDB. J’ai passer id_particulier en Index dans ma 1ere table sinon dans « gestion des relations » je ne pouvais pas relier mon id_particulier mais je ne sais pas si l’erreur vient de là...
J'attends vos avis, merci d’avance
Partager