Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Prendre des données d'1 table pour les reinserer dans une autre ayant la meme struct
    Bonjour,

    Je suis nouveau au sein de cette communauté et je profite de ce premier thread pour saluer tous les membres et acteurs developpez.com.

    Tout d abord je suis très peu agueri en Sql, mon but est de récuperer n enregistrements d'une table(defini par des conditions enfin peu importe), puis de les réinserer dans une autre table ayant exactement la meme structure.
    Vous vous en doutez, ce processus me servirait à desengorger une table, et à creer des tables d'archives tous les ans(par exemple).

    Je vois bien un moyen lourd et plus que tres peu optimisé de faire ceci :
    1 : Je recupere mes lignes dans ma table a desengorger dans un tableau
    2 : Je fourni ces donnees a ma 'table de stockage'
    3 : si les deux premieres requetes ont ete effectuees avec succes, je supprime les lignes que j ai commencé par selectionner en 1:

    Ca me parait tres lourd , surtout en cas de beaucoup de données, n'y a t-il pas un moyen d'operer plus efficace et optimisé?

    Je remercie par avance les personnes qui sacrifieront un peu de leur temps pour m'aider a resoudre ce problemes ( et ne condamne en rien ceux qui ne le feront pas d'ailleurs )

    ++

  2. #2
    Membre expérimenté
    Bonjour,

    Pour les points 1 et 2, tu trouveras ton bonheur là :
    http://dev.mysql.com/doc/refman/5.0/fr/insert-select.html

  3. #3
    Membre averti
    C'est la plus lourd, mais aussi la plus sur.

    Tu récupère les tables, puis dans un while, tu les parcours en les insérant une a une.
    Si l'insertion réussi, tu supprime l'entrée dans la table source.

    En cas de problème tu ne perd rien ! Et si tu a beaucoup de donnée, tu peut faire ca en plusieurs fois.

  4. #4
    Membre du Club
    Merci a vous, la requete INSERT SELECT couplé a une verification de son succes avant la suppression est exactement ce que je cherchais.