Page 1 sur 1

mise à jour d'une table

Posté : 06 juil. 2006, 09:10
par luna
Bonjour,

En faite j'ai deux tables :

La première sont des clients avec toutes les caractéristiques leurs correspondants nom, prénom, code_postal, ville, adresse, numéro de téléphone, fax....
Une deuxième table avec les code_ville, ville et code_postal.

Je voudrai que la premiere soit mise à jour, c'est a dire que le code ville vienne remplacer le code_postal et la ville.

Je ne voit pas quel démarche effectué.

Je sais que c'est possible, je l'ai déjà fait il y a de nombreuses années lorsque j'étais encore étudiante, mais je ne me rappelle plus.

Merci d'avance.

Posté : 06 juil. 2006, 13:04
par sadeq
Le modèle relationnel exige dans ton cas de mettre une relation entre tes 2 tables en éliminant les champs en double.

Puisque la 2° table référence les villes et leurs codes postaux par un code_ville unique, tu dois éliminer les 2 champs 'ville' et 'code_postal' de la 1° table (client) pour les remplacer par un champ 'code_ville'.
Et ainsi la relation entre la 1° et la 2° table est établie par le champ 'code_ville'

On appelle le champ 'code_ville' de la 2° table : une clé primaire et celui de la 1° table : une clé étrangère.

La relation se lit alors :
"Un client habite une seule ville codée par 'code_ville'"
et "Une ville codée par 'code_ville' est habitée par plusieurs clients"
Telque: un 'code_ville' représente une ville et un code postal.

le schèma de données est le suivant :
  • 1. Table client (code, nom, prénom, adresse, téléphone, fax, code_ville)
    où code est la clé primaire et code_ville une clé étrangère

    2. Table ville (code_ville, nom, code_postal)
    où code_ville est la clé primaire

Posté : 07 juil. 2006, 08:14
par luna
je suis d'accord, mais les tables sont déjà existante. Et grace a une requete j'aimerai que le code ville soit insérer dans la table client en fonction de la ville et du code postal deja present. Ensuite j'effacerai les colonne ville et code postal.

En faite, c'est une requete de mise a jour, pour insérer le bon codeville par rapport au client déjà enregistrer.

merci

Posté : 07 juil. 2006, 12:59
par sadeq
Ô que c'est simple, c'est effectivement un update conditionné à condition que tu ais un champ 'code_ville' dans la table client :

Code : Tout sélectionner

UPDATE client c, ville v SET c.code_ville = v.code_ville WHERE c.ville = v.ville and c.code_postal = v.code_postal