Problème clés étrangères MySQL
Paulo
-
Paulo -
Paulo -
Bonjour,
Actuellement entrain de "créer" une BDD sur phpmyadmin je rencontre un problème avec les clés étrangères, en fait plusieurs de mes tables sont liés entre elles par une clé étrangère mais celle-ci ne s'incrit pas, alors que dans la table où c'est une clé primaire elle existe.
Et étant donné que je ne peux pas importer de données dans une table où toutes les colonnes ne se complète pas, je suis complètement bloqués.
J'ai essayé de les faire venir "à la main" en utilisant ces lignes :
Mais elles ne retournent rien..
Si quelqu'un a une réponse ça m'aiderai beaucoup.
Merci d'avance
Actuellement entrain de "créer" une BDD sur phpmyadmin je rencontre un problème avec les clés étrangères, en fait plusieurs de mes tables sont liés entre elles par une clé étrangère mais celle-ci ne s'incrit pas, alors que dans la table où c'est une clé primaire elle existe.
Et étant donné que je ne peux pas importer de données dans une table où toutes les colonnes ne se complète pas, je suis complètement bloqués.
J'ai essayé de les faire venir "à la main" en utilisant ces lignes :
UPDATE villes
SET ID_province = (
SELECT ID_province
FROM provinces
)
Mais elles ne retournent rien..
Si quelqu'un a une réponse ça m'aiderai beaucoup.
Merci d'avance
2 réponses
-
Bonjour,
Dans la requête que tu donnes, comment MySQL peut-il savoir quelle province correspond à quelle ville ?
Il faut être plus précis, du genreUPDATE villes SET ID_province = 3 WHERE ID_ville IN (1, 2, 4);
Tu as beaucoup de données à mettre à jour ?
Xavier-
-
-
Et bien il faudra alors faire quelque chose comme ça :
- Si tu connais le code de la province (dans l’exemple, 8) :INSERT INTO Villes (Nom, ID_Province) VALUES ('Une Ville', 8)
- Si tu ne connais que son nom :INSERT INTO Villes (Nom, ID_Province) SELECT 'Une Ville', ID FROM Provinces WHERE Nom = 'Nom Province'
Xavier -
-
-
-
Bonjour,
Ta requête est incomplète, puisque si la table provinces contient 20 lignes tu essaies de mettre à jour le champ avec 20 valeurs.
D'ailleurs tu devrais avoir une erreur du type "la sous-requete ramène plus d'une ligne". Dans ta sous requête il faut un critère pour ramener la province qui correspond à la ville.
Cdlt