mysql> select * from produit;
+----+------+
| id | nom |
+----+------+
| 1 | p1 |
| 2 | p2 |
| 3 | p3 |
+----+------+
Et pour deux produit d'id n et m, tu veux échanger n et m, ce qui revient à laisser n et m à leur place et à échanger toutes les autres valeurs des deux lignes de données. Moi je ferai un truc du genre:
- duplication du premier produit
- mettre à jour le premier produit avec les valeurs du second
- mettre à jour le second avec les données de la copie
- suppression de la copie
en pseudo-sql, ca donnerai ca:
- insert into produit(nom) select nom from produit where id=n;
- p = select last_insert_id()
- update produit p1, produit p2 set p1.nom=p2.nom where p2.id=m and p1.id=n;
- update produit p1, produit p2 set p1.nom=p2.nom where p2.id=p and p1.id=m;
- delete from produit where id=p;
Je pense pas qu'on puisse le faire en moins d'opérations ?!? Mais pourquoi vouloir échanger deux id de produits ? En as-tu vraaaaiiiiiiment besoin ?
A+,
Jay
# Insert, Update, Delete
Posté par Jay . En réponse au message MySQL : échanger deux valeurs (clé primaire). Évalué à 1.
- - duplication du premier produit
- - mettre à jour le premier produit avec les valeurs du second
- - mettre à jour le second avec les données de la copie
- - suppression de la copie
en pseudo-sql, ca donnerai ca:- - insert into produit(nom) select nom from produit where id=n;
- - p = select last_insert_id()
- - update produit p1, produit p2 set p1.nom=p2.nom where p2.id=m and p1.id=n;
- - update produit p1, produit p2 set p1.nom=p2.nom where p2.id=p and p1.id=m;
- - delete from produit where id=p;
Je pense pas qu'on puisse le faire en moins d'opérations ?!? Mais pourquoi vouloir échanger deux id de produits ? En as-tu vraaaaiiiiiiment besoin ? A+, Jay