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 :

plpgsql fonction récursive ?


Sujet :

Requêtes PostgreSQL

  1. #1
    Invité
    Invité(e)
    Par défaut plpgsql fonction récursive ?
    Bonjour,

    J'ai une table Personne qui contient :
    id
    nom
    prenom
    idpere

    La valeur de l'id du père correspond bien sûr à l'id d'une personne ( le perd lui même )

    On a donc une arborescence : La personne a un père qui a un père qui a un père ..

    Du coup j'aimerais faire une fonction qui prend en paramètre l'id de cette personne et qui renvoie le nom des pères( le père de la personne id, son père, son père etc .. )

    Comment faire cela ? ( J ai pensé à faire une table temporaire mais j'aimerais éviter )

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,


    http://sqlpro.developpez.com/cours/s...te-recursives/

    c'est le même principe sous postgresql

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Cela ne m'avance pas tant que ça

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Sur quel point bloquez-vous ...?

    les fonctions c'est par là : http://www.postgresql.org/docs/9.1/s...xfunc-sql.html


    Bref indiquez votre code actuel.

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'aurai aimé avoir une confirmation ,
    Dans un cas comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    LOOP 1 
     
     
       LOOP 2
           /* fait ceci cela */
           RETURN NEXT row
       ENDLOOP 2;
     
       if ... exit
     
    ENDLOOP1;
    Est-ce que ici, le return Next me permet de sortir du loop 2 ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    http://www.postgresql.org/docs/9.1/s...tructures.html

    Y a tout ici, avec des exemples.

    Return next, stock une ligne qui sera retournée par la fonction.

    Ca n'est pas un contrôle de loop.

Discussions similaires

  1. [VB6] XML, fonction récursive de recherche
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2006, 21h27
  2. [XSLT] fonction récursive à N niveaux
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/03/2006, 12h30
  3. Fonction récursive renvoi sur page d'erreur
    Par peck dans le forum Langage
    Réponses: 1
    Dernier message: 23/12/2005, 10h08
  4. Problème de fonction récursive avec un TcxDBTreeList
    Par isachat666 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/12/2005, 13h12
  5. [ debutant PLPGSQL ] fonction plpgsql
    Par diableblanc dans le forum PostgreSQL
    Réponses: 12
    Dernier message: 01/06/2005, 12h54

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