Mon problème est très simple à expliquer mais je n'arrive pas à trouver la bonne réponse!Copier et insérer plusieurs fois dans (mysql)?
J'ai 3 tables dans mysql, appelées tA, tB, tC. J'ai une entrée A tA, 2 entrées B en tB et 3 entrées C en tC avec une architecture hiérarchique comme celui-ci:
A
|
----------------
| |
B1 B2
| |
-------- |
| | |
C1 C2 C3
Comme vous pouvez l'imaginer, je les entrées B sont liées à une entrée avec un identifiant , et les entrées C sont liées aux entrées B avec B id.
Je veux simplement copier ces données:
A'
|
----------------
| |
B1' B2'
| |
-------- |
| | |
C1' C2' C3'
Donc au début, je commence par la création de A « et copier les entrées B liées à A ». Pas de soucis. Mais après, j'ai fait une requête avec une jointure gauche pour copier les entrées C vers C '. Ça marche presque ... le seul problème est que, de cette façon, mes entrées C 'sont liées à B id et non à B' id !!!!
J'essaie d'autres choses mais je ne sais pas comment faire ça. Cela semble si simple. Peut-être que je suis fatigué ... Peut-être que je dois copier les entrées B une par une, et copier toutes les entrées C de l'entrée B en cours avant de passer à la suivante.
Mais n'y a-t-il pas une façon plus intelligente de le faire? Avec insert_id, cascade, trigger, clé étrangère ???
Je ne suis pas un spécialiste de sql et j'espère que quelqu'un ici aura une bonne solution.
Merci d'avance.
Bastien
Je ne peux pas vraiment penser à une façon purement SQL pour faire cela, mais je pourrais facilement le gérer avec PHP ou ColdFusion. Utilisez-vous n'importe quel type d'application pour accéder à votre base de données? si oui, quelle langue et je vais essayer de vous aider. – invertedSpear
Mon application est basée sur CodeIgniter (php). J'utilise fondamentalement ActiveRecord mais parfois pour des demandes complexes, j'utilise directement la requête avec SQL natif. Merci de votre aide. – bastien