Bonjour à tous,
Voila, j'ai un petit problème qui me casse bien la tête sous Access pour faire un update sur des tables entières.
Explications :
J'ai 2 tables : Clients et Client_prices.
Les deux sont liéées par l'id (clé primaire) des tables, cad Clients.Numéro et Client_prices.id_client.
Je souhaiterais mettre à jour tous les champ Client_prices.id_client pour qu'ils correspondent non plus avec Clients.Numéro (qui est l'id autoincrémenté), mais avec Clients.NumClient (qui est le numéro de client en interne de la boite).
J'ai tenté les requetes suivantes :
Requete 1 :
UPDATE client_prices CP SET CP.id_client = (SELECT Clients.Numéro FROM Clients C WHERE CP.id_client = C.Numéro) WHERE 1 ;
>>> Il me dit qu'un enregistrement va etre modifié (ce qui est bon), mais il ne le modifie pas
Requete 2 :
UPDATE client_prices INNER JOIN Clients ON (Client_prices.id_client=Clients.Numéro) SET Client_prices.id_client = Clients.Numéro ;
>>> Il me dit qu'un enregistrement va etre modifié (ce qui est bon), mais il ne le modifie pas
J'ai lu qu'il était impossible de modifier la valeur de l'id d'une clé primaire donc je l'ai désactivée (temporairement) sur la table Client_prices !!!
Petite précision :
Je vous ai dit qu'il n'y a qu'un enregistrement à modifier, c'est juste pour le test de la requete avant de faire l'update sur la vrai base de production. Qu'on évite donc les messages du genre "Regarde dans les 2 tables et change les valeurs à la main !!! " :-)
Merci d'avance pour votre aide
Seb
Partager