Problème d'insertion de clé étrangère

cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008 - 18 mars 2008 à 10:37
achourgh Messages postés 2 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 avril 2012 - 17 avril 2012 à 02:04
Bonjour
Dans ma base de données, j'ai une table 'temperature' et une table 'enceinte'.
Dans la table 'enceinte' j'ai une clé primaire appelée : 'idenceinte'.
Je voudrais connaitre la requète SQL qui me permettrait d'inserer dans la table 'temperature' la clé primaire de la table 'enceinte' qui sera donc une clé étrangère.

J'ai commencé à ecrire ma requète comme ceci : ALTER TABLE temperature ADD FOREIGN KEY (idenceinte)
                                                                          REFERENCES enceinte (idenceinte)
Le problème c'est que je reçois un message d'erreur me disant : "
La clé 'idenceinte' n'existe pas dans la table"
Pouvez-vous m'aider?

11 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 13:27
Salut,

Quelle est la définition de ta table `temperature` ?

<hr size="2" width="100%" />Neige
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
18 mars 2008 à 18:44
Comment sa la definition de la table 'temperature'?
Mes tables sont déja crées donc maintenant je veux juste ajouter une clé etrangère (table 'enceinte')
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 19:10
La définition de la table, c'est sa structure, ses champs, ses index, tout ça...

On ne peut pas interpréter correctement le message d'erreur que tu as si on ne sait pas à quoi ressemble ta table.
<hr size="2" width="100%" />Neige
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
18 mars 2008 à 19:43
ah ok ok
Table temperature : id_temp , temp , depassement , minute , heure , date , capteur
Table enceinte : idenceinte , num_enceinte , num_enceinte , num_local , foxboard , temp_consigne

Donc je veux inserer dans la table temperature la clé primaire idenceinte de la table enceinte...insertion donc d'une clé etrangère
Voila j'attend ta reponse et merci dailleur d'avoir repondu aux précédentes

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 20:03
Re,

Pour créer un index (clé étrangère ou autre) sur une colonne, il faut que la colonne existe. Donc avant toute chose :

ALTER TABLE `temperature` ADD `idenceinte` INT NOT NULL AFTER `id_temp`;

J'ai écrit INT, mais c'est autant que ce soit le même que idenceinte de la table enceinte

Ensuite, tu peux ajouter ta clé étrangère...

<hr size="2" width="100%" />Neige
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
18 mars 2008 à 20:22
IMPECABLE.....sa marche parfaitement...dc merci beaucoup ça commencait à me prendre la tête...
Donc si j'ai bien compris...il faut d'abord créer la colonne 'idenceinte' avant de la definir comme etant une clé etrangère c bien ça?
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 20:25
Effectivement... Un Index, quel qu'il soit, ne peut se créer que sur une colonne existante.

<hr size="2" width="100%" />Neige
cs_samir1988 Messages postés 13 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 1 mai 2008
18 mars 2008 à 21:07
OK OK sa marche
bon ben jte remerci c simpa
a biento
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
18 mars 2008 à 23:29
D'un côté j'espère pas... Ca voudra dire que t'as pas de problème... :o)
D'un autre côté, maintenant que j'ai enfin le net chez moi, je campe ici...

<hr size="2" width="100%" />Neige
achourgh Messages postés 2 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 avril 2012
17 avril 2012 à 01:56
achourgh Messages postés 2 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 17 avril 2012
17 avril 2012 à 02:04
slt,
svp j'ai une table T1 dont la cle primaire est la concatenation de 2 clés appartenant chacun à une table(T2,T3).Je veux un code php d'insertion automatique dans la table T1 lorsqu'il y a insertion dans les tables T2 et T3. Merci d'avance.
Rejoignez-nous