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

Requêtes PostgreSQL Discussion :

dupliquer les lignes d'une tables en fonction de la valeur d'un champs


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut dupliquer les lignes d'une tables en fonction de la valeur d'un champs
    Bonjour
    Je voudrais dupliquer les lignes de ma table en fonction de la valeur
    d'un de mes champs:
    ex:
    ligne d'origine:

    champs 1:dupont
    champs 2: A
    Champs 3: 3

    Je souhaites obtenir trois lignes identiques à celle là.
    Je vous remercie d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    juin 2005
    Messages
    5 490
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : juin 2005
    Messages : 5 490
    Points : 12 584
    Points
    12 584
    Par défaut
    En INSERT ou SELECT ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Tu peux utiliser UNION ALL pour sortir plusieurs fois la même ligne dans une seule requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     select a,b,c FROM table 
    UNION ALL
     select a,b,c FROM table 
    UNION ALL
     select a,b,c FROM table
    Ensuite si ça doit être inséré dans la table d'origine, mettre un INSERT INTO table au-dessus devrait fonctionner.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    juillet 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai la possibilité de créer une nouvelle table avec mes lignes dupliquées, donc select ou insert peu importe, par contre j'aimerais que ma requête soit automatique, est ce possible avec le union all?
    J'aimerais lui dire:
    lorsque le champs 3 contient la valeur 2, tu copies deux fois la ligne correspondante dans la nouvelle table,
    lorsque le champs 3 contient la valeur 3, tu copies trois fois la ligne correspondante dans la nouvelle table.....
    Merci encore pour vos réponses

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Si le nombre de recopies est variable, le plus simple est de le faire en plpgsql, avec un code du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DECLARE r latable;
    begin
      select into r * FROM latable WHERE ...les conditions qui vont bien
      for i in 1..N
        insert into la_table values(r.*)
      end loop  
    end;

Discussions similaires

  1. [9.3] Dupliquer les lignes d'une table en fonction d'une valeur d'un champ
    Par rhinolophus dans le forum Contribuez
    Réponses: 2
    Dernier message: 03/04/2015, 11h44
  2. Procedure ou fonction qui echange les lignes d'une table
    Par cedro dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/07/2011, 10h34
  3. Réponses: 2
    Dernier message: 30/08/2009, 19h42
  4. Dupliquer les lignes d'une table
    Par deutschy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/10/2007, 12h18
  5. Compter les lignes d une <TABLE>
    Par Invité(e) dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/01/2005, 14h43

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