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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé 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
    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...

  2. #2
    Membre éclairé 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
    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?

  3. #3
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    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;

  4. #4
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    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

  5. #5
    Membre éclairé 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
    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...

+ 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