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

PostgreSQL Discussion :

Requète pour dumper une ligne


Sujet :

PostgreSQL

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut Requète pour dumper une ligne
    Salut,

    Je vais sans doute poser une question ridicule mais j'aimerais savoir si il est possible, via une query d'obtenir le dump d'une ligne précise d'une table. Je sais que le dump peut prendre pour cible une DB ou une table mais est-il possible de faire une query qui cible une ligne d'une table et qui retourne un truc genre
    Code :
    INSERT INTO matable (...) VALUES (...);Si quelqu'un voit une piste, je l'en remercie.

    Au passage, J'avais posté ceci dans le forum langage SQL mais lorsque j'ai précisé que mon SGBD est postgres, on m'a conseillé de cloturer et de reposter...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  2. #2
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'ai pensé à un truc genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT 'INSERT INTO table(champ1,champ2,champ3) VALUES ('||champ1||','||champ2||','||champ3||');' 
    AS query FROM table WHERE champ1 = 2;
    Le champ 2 est un boolean, je ne sais pas trop comment faire pour le caster et lui permettre d'incorporer la chaîne. Pour le moment, je la caste en int mais je ne sais pas comment faire pour lui dire que 1 = afficher true. Autre problème, si l'un des champs est null, le résultat retourné est vide, quelqu'un sait comment résoudre ces problèmes?
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  3. #3
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Bonjour,

    je vois tout a fait ce que tu veux faire,
    je pense qu'il faudrait que tu te cree une petite procedure stockée, pour prendre en compte tout type de table.

    sinon pour ton pb de null, utilise coalesce :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT 'INSERT INTO table(champ1,champ2,champ3) VALUES ('||coalesce(champ1,'NULL')||','||coalesce(champ2,'NULL')||','||coalesce(champ3,'NULL')||');' 
    AS query FROM TABLE WHERE champ1 = 2;
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  4. #4
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    pour le boolean, et c'est valable pour d'autre type tu peux utiliser CASE WHEN

    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CASE champ2 WHEN true THEN 'true' WHEN false THEN 'false' ELSE 'NULL' END
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  5. #5
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'avais trouvé la solution du CASE WHEN mais le coalesce est plus court et peut être plus propre que le CASE WHEN champ1 is null THEN ' ' ELSE champ1 END.

    hpalpha...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2013, 18h24
  2. Requête pour modifier plusieurs lignes d'une colonne
    Par nvit24 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/08/2011, 00h42
  3. Réponses: 2
    Dernier message: 01/12/2006, 10h09
  4. Une requête pour éditer plusieurs lignes.
    Par Anduriel dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/05/2006, 20h24
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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