IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

PHP & Base de données Discussion :

Dupliquer des lignes d'une table dans une meme table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut Dupliquer des lignes d'une table dans une meme table
    Bonjour ,

    Voilà mon soucis .

    J'ai une table : shop_valeurs qui contient une cinquantaine d'enregistrements avec les champs : id, nom, fils où fils est une clé étrangère .
    Mon problème est que ces enregitrements sont liés à une centaine de noms .
    J'ai donc besoin de "copier/coller" ma cinquantaine d'enregistrements dans ma table shop_valeurs en changeant une centaine de fois le numéro de fils ( 4950 lignes ...) , ainsi que d'incrémenter correctement les id ...

    Cela est-il réalisable au moyen d'une simple requete ? ou faut-il disposer d'un quelconque outil supplémentaire ?

    Merci d'avance pour vos réponses.

    HAbroc
    www.masterquizz.fr - Ne vous posez plus de questions

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    J'aurais bien une idée, mais je doute que ça fonctionne...
    Tu crée une table dans laquelle tu met tous les id des fils à copier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE temp ( nombre number );
    INSERT INTO temp SELECT fils FROM ...; --Tu récupère la liste des id des fils à insérer ( avec un where pour éliminer celui qui existe déjà )
    INSERT INTO shop_valeurs ( nom, fils ) SELECT nom, nombre FROM shop_valeurs, nombres;
    Tu fait la requête que tu apprends à ne jamais faire, c'est à dire sans jointure : Tu aura tous les couples nom - nombre possible, ce qui est, je crois, l'idée

    Pour l'auto-incrémentation, tu met le champ id en auto-increment... Ou je sais pas si c'est possible, mais tu crée un trigger avec une séquence, sinon.

    Bonne chance & Bonne journée.
    LoveAngel :: Meow( );
    Personne ne remarque ce qui marche trop bien. Procrastination, Terry Pratchett

  3. #3
    Membre régulier
    Homme Profil pro
    directeur hypermarché
    Inscrit en
    Avril 2009
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : directeur hypermarché

    Informations forums :
    Inscription : Avril 2009
    Messages : 227
    Points : 111
    Points
    111
    Par défaut
    Merci beaucoup ...
    Ce n'est pas exactement ce que je souhaitais , mais cela me fait déjà gagner énormément de temps .

    J'ai créé une table temporaire avec les champs de la table initiale .
    J'ai inséré les enregistrements de ma table dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO shop_valeur SELECT * FROM shop_valeurs
    J'ai fait les modif de id et de fils que j souhaitais dans la table temporaire , et j'ai réintégré les enregistrements dans la première table . Je n'ai donc pas eu besoin de recopier l'ensemble des textes du champ 'nom' ...

    Merci .

    HAbroc
    www.masterquizz.fr - Ne vous posez plus de questions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Lier les tables d'une Base1 dans une Base3 via une Base2
    Par ted the Ors dans le forum VBA Access
    Réponses: 0
    Dernier message: 30/12/2009, 11h58
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo