Insertion de donnees dans une table à partir de données de la même table

Signaler
Messages postés
2
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
20 février 2009
-
Messages postés
2
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
20 février 2009
-
Bonjour !

Bloquée depuis des heures sur le problème suivant :

J'ai dans ma table 1 une série d'enregistrement que je dois dupliquer dans la même table mais avec un nouvel id.
J'ai dedans des "objets" anciens mais encore utilisés et je dois recreer de nouveaux à partir des vieux avec des variations.
Ces objets de ma table 1 avec id 1 sont liés à une table 2 qui contient id 1 et  un identifiant d'une table 3, id 3 (qui ne stocke que cet identifiant auto incrémenté et un flag ?!). Table2 est liéée avec table 4, qui contient l'identifiant 3, et un autre identifiant qui me renvoie vers les contenus de mes objets (relation que je dois aussi garder sur mes nouveaux objets)
Relations : table 1<=>2 :1,1 
                 table 3<=>2 : 1,1 
                 table 2 =>4 :1,n
J'arrive à faire l'insertion dont j'ai besoin dans table 1, mais impossible de garder la relation entre les nouveaux id qui se créent et les anciens. 
J'ai créé une table de travail dans laquelle j'ai lié toutes les données tables 1,2,3 et où j'ai les anciennes valeurs d'id.

Mais rien à faire, je n'arrive pas à trouver comment garder la liaison entre ancien id et nouvel id pour garder dans la table 4 la bonne correspondance entre les objets et leur contenu.
Aussi, AU SECOURS! J'ai besoin de toute l'aide que vous pourrez m'apporter, je ne suis pas une experte SQL et je connais tout juste Sybase...

Merci!<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" coordsize="21600,21600" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75"> <v:shapetype id="_x0000_t75" coordsize="21600,21600" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>

2 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
36
Salut,

Je ne comprends pas trop le probleme et le pourquoi.
Mais avec une procedure stockée et un curseur
ce cas peut normalement être réglé.
Messages postés
2
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
20 février 2009

En effet, c'est bien mon souci : je ne suis pas une grande experte SQL, l'idée curseur /procedure stockée me paraissait un peu lourde. Tu me confirme donc que c'est la seule méthode pour arriver à garder le lien entre mes anciennes données et les nouvelles que j'insère à partir de ces dérnières.
Je me lance...

Merci!