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

Signaler
Messages postés
13
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
1 mai 2008
-
Messages postés
2
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
17 avril 2012
-
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

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

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

<hr size="2" width="100%" />Neige
Messages postés
13
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
1 mai 2008

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')
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
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
Messages postés
13
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
1 mai 2008

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
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
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
Messages postés
13
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
1 mai 2008

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?
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Effectivement... Un Index, quel qu'il soit, ne peut se créer que sur une colonne existante.

<hr size="2" width="100%" />Neige
Messages postés
13
Date d'inscription
vendredi 14 mars 2008
Statut
Membre
Dernière intervention
1 mai 2008

OK OK sa marche
bon ben jte remerci c simpa
a biento
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
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
Messages postés
2
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
17 avril 2012

Messages postés
2
Date d'inscription
mardi 7 février 2012
Statut
Membre
Dernière intervention
17 avril 2012

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.