Bonjour à tous,
Voici le MLD de ma BDD:
-Table "Plan" : idPlan, version, ... A dupliquer
-Table "Trou" : idTrou(PK), nomTrou, ... , idPlan (FK) A dupliquer
-Table d'association "Active" : idTrou1(PK/FK), idTrou2(PK/FK) A dupliquer
-Table "Site" : idSite (PK), ...
-Table d'association "Surveille" : idSite(PK/FK), idPlan(PK/FK), ... A dupliquer
-Table d'association "Record" : idSite(PK/FK), idPlan(PK/FK), idTrou(PK/FK), ... A dupliquer
Je souhaite dupliquer un plan et le changer de version, mais je veux aussi dupliquer les trou qu'il possède (table trou) ainsi que ses sites (table surveille) et les record réalisé (table record).
J'aimerai savoir s'il existe une requête SQL permettant de réaliser ce recopiage facilement ( en respectant les nouveaux id créés ).
J'ai trouvé que je pouvais faire un :
Ce qui facilite et raccourcis mon code mais en réalisant cette requête sur les autres tables, j'obtiens par exemple pour la table trou : un trou qui possède l'idPlan du plan que j'ai choisi de dupliquer et non pas celui que je viens de dupliquer, ce qui pose gros problème puisque je vais ensuite modifier les trous (et que je ne souhaite pas modifier les trous de l'ancien plan). Comment régler ce problème ? Dois je réaliser un update sur toutes mes insertions et modifier idPlan(FK) dans la table trou? Ou existe t il un moyen plus simple de réaliser cela ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 insert into plan select * from plan where idPlan=1;
Par ailleurs, je ne vois pas trop comment faire pour dupliquer les données de ma table active en respectant les id des trous que je viens de créer. Des idées ?
Pour information, j'utilise SQLite3.
Merci pour le temps consacré sur mon problème.
Bakamii.
Partager