Bonjour,
J'ai un souci, peut être simple, mais où je ne trouve pas la solution.
J'ai 3 tables dans mysql. Appelons les tA, tB, tC.
J'ai une entrée A dans tA, 2 entrées B1 et B2 dans tB et 3 entrées C1, C2 et C3 dans tC.
Les entrées B sont liées à A par l'id de A (clé étrangère en qq sorte), et les entrées C sont liées à B avec C1 et C2 liées à B1 et C3 liées à B2.
Je veux simplement copier toutes ces données et me retrouver avec :
- A' est la copie de A
- B1' est la copie de B1 et B2' est la copie de B2 et elles sont liées à A' par l'id d'A'.
- C1' est la copie de C1, C2' est la copie de C2 et elles sont liées à B1' et enfin C3' est la copie de C3 est est liée à B2'.
J'ai commencé par copier A en A'. Ensuite, j'ai copié les entrées B en les liant à A'.
Ensuite, j'ai fait une une requête avec une jointure pour copier les entrées C. Ca marche presque sauf que je me retrouve avec les bons C' mais liées aux entrées B et non pas B' !!!!
J'ai essayé d'autres trucs qui marchent pas. Et je suis un peu coincé. La seule solution que j'ai trouvé est de copier les entrées B une par une, et entre chaque copie, je récupère l'id de la nouvelle entrée B', je copie les entrées C liées à la B en cours pour les linker à B'. Une fois fini, je passe à l'entrée B suivante.
Ma question : ça me semble basique comme question, donc n' y a t il pas un moyen propre de faire une reqûete en cascade qui me fasse la copie des données des deux tables ??
Je suis pas un spécialiste sql donc je dois rater certains trucs.
Merci d'avance.
Bastien
Partager