|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 254 ![]() |
Bonjour
J'ai un souci avec la génération du chemin de l'arbre (cf. path dans la doc postgres). Code :
Code :
par contre je n'arrive pas à faire fonctionner la requête inspirée de la doc PostgreSql, et intégrant la génération du chemin : Code :
Citation:
Je dois mal utiliser le type ARRAY, pouvez-vous m'éclairer ? |
|||||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 2 154 ![]() |
Bonjour,
Dans l'idée : Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 254 ![]() |
Bonjour
J'ai bien l'impression que la solution passe par un bon cast. Avec votre idée, la requête s'exécute. Le résultat ne semble pas bon pour le champ path. Mais c'est peut être juste l'affichage de ce champ ARRAY qui n'est pas bon ? Je joins la sortie en PJ resRec_punkoff.png Qu'en pensez-vous ? |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 682 ![]() |
Oui c'est à cause du CHAR qui provoque un padding. Si vous castez votre ID en varchar aux deux endroits, vous n'aurez plus cet effet.
Par contre on peut fortement s'interroger sur : - l'utilisation du type CHAR sur un identifiant - la possibilité que vous donnez d'avoir des cycles dans votre arbre et donc l'utilité de les détecter dans votre requête de sélection. D'autant que la récursivité et les cycles ne font pas bon ménage. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 254 ![]() |
Bonjour
J'utilise des char pour id et des cycles juste à titre d'essai pour tester la récursivité. Toutes mes tentative de "cast" échouent. Comment le faire ? Par ailleurs, comment charger la base demo de postgres (j'aimerais tester leurs exemples avec la table graph) ? Merci d'avance |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 682 ![]() |
Pour le cast de l'ID en varchar :
Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 254 ![]() |
Bonjour
merci, avec le cast proposé tout fonctionne à merveille. J'insiste quand même pour demander : Comment trouver un dump de la base de demo postgres ? Sinon, vmolines : pour le test de "cycle", nous avons des arbres dont le départ "s'auto référence" (id=parent). Dans ma table domaine, c'est le cas d'arbre pour id=2. Sans la solution "and not d.id=ANY(path)" ci-dessous, la requête part en boucle sans fin. Curieusement "and not cycle" ne suffit pas : la requête ne génère pas de boucle, mais le premier enregistrement apparaît autant que level 1 et level 2 du fait d'auto reférencement. Code :
Grand merci à tous les participants. En espérant d'aider certains qui chercheront un jour à comprendre cette syntaxe SQL particulière. |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com