CodeRemorques Posted May 24 Share Posted May 24 Bonjour, Suite à un changement de version, nous avions un bug sur un transporteur. Nous avons du le recréer complètement. Problème, ce transporteur était selectionné sur des fiches produits. Afin de ne pas tout refaire à la main (900 environ) je souhaitais donc le faire en SQL mais cela ne fonctionne pas... ma requête est : UPDATE `ps_product_carrier` SET id_carrier_reference = '730' WHERE id_carrier_reference = '1' En fait je veut remplacer toutes les entrées ayant pour numéro '1' par l'id '730' dans cette table. Le retour d'erreur est: MySQL a répondu : #1062 - Duplicata du champ '11-730-1' pour la clef 'PRIMARY' Si je fais un SELECT, j'ai bien 928 résultats. Merci de votre aide Cordialement Link to comment Share on other sites More sharing options...
Eolia Posted May 24 Share Posted May 24 Vous avez des id_produits déjà associés au transporteur 730, il faut donc commencer par faire un nettoyage. Effectuez un SELECT * WHERE id_carrier_reference IN(1, 730) ORDER BY id_product; qui vous permettra de voir les produits déjà affectés au 730 et virer leur ligne id_carrier _reference avec 1. Link to comment Share on other sites More sharing options...
CodeRemorques Posted May 24 Author Share Posted May 24 Bonjour, Merci de votre retour, Oui en effet j'en ai déjà 230 de modifié à la main avant cela... Je ne peu pas faire autrement que de reprendre / modifier cela manuellement pour remettre 1 partout, avant de faire mon UPDATE ? 😕 Link to comment Share on other sites More sharing options...
Eolia Posted May 24 Share Posted May 24 Alors faites votre sélect en cherchant tous ceux qui ont 730 et passez-les à 1. Link to comment Share on other sites More sharing options...
CodeRemorques Posted May 24 Author Share Posted May 24 Donc manuellement ? Au final je gagne pas de temps si je dois faire cela 😕 Link to comment Share on other sites More sharing options...
Eolia Posted May 24 Share Posted May 24 Ben non, avec 2 requêtes. -- Reinitialisation des id UPDATE `ps_product_carrier` SET id_carrier_reference = 1 WHERE id_carrier_reference = 730; -- Mise à jour UPDATE `ps_product_carrier` SET id_carrier_reference = 730 WHERE id_carrier_reference = 1 Link to comment Share on other sites More sharing options...
CodeRemorques Posted May 24 Author Share Posted May 24 J'avais déjà essayer mais erreur aussi... UPDATE `ps_product_carrier` SET id_carrier_reference = 1 WHERE id_carrier_reference = 730 MySQL a répondu : #1062 - Duplicata du champ '11-1-1' pour la clef 'PRIMARY' Link to comment Share on other sites More sharing options...
Eolia Posted May 24 Share Posted May 24 Ok, donc à priori TOUS ceux qui ont déjà un 730 ont aussi un 1 ? Si c'est le cas, supprimez tous ceux qui ont un 730. Link to comment Share on other sites More sharing options...
CodeRemorques Posted May 24 Author Share Posted May 24 Oui c'est cela, malheureusement... Je vais reprendre à la main, pas le choix du coup. Merci à vous de votre aide Bonne soirée Link to comment Share on other sites More sharing options...
Eolia Posted May 24 Share Posted May 24 Ben non, DELETE FROM `ps_product_carrier` WHERE id_carrier_reference = 730; -- Mise à jour UPDATE `ps_product_carrier` SET id_carrier_reference = 730 WHERE id_carrier_reference = 1 Link to comment Share on other sites More sharing options...
CodeRemorques Posted May 24 Author Share Posted May 24 Merci mais je ne peu pas supprimer cela, car je devrais les refaire aussi après cela ne change pas trop en fait... C'est l'un ou l'autre si je comprend bien, je dois quand même supprimer des données, mais faudra ensuite les re-créer... j'ai essayer aussi avec des requêtes, mais il y a aussi des duplicata qui pose problème... une belle misère au final ce genre de chose. Bonne soirée, Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now