Re: [pgsql-fr-generale] RE: [pgsql-fr-generale] RE: [pgsql-fr-generale] lié un generate_series et un autre select

From: SOUCHARD Jean-Michel DSIC BIP <jean-michel(dot)souchard(at)interieur(dot)gouv(dot)fr>
To: Olivier Ducteil <olivier(dot)ducteil(at)l-olive(dot)fr>
Cc: "'Dimitri Fontaine'" <dimitri(at)2ndQuadrant(dot)fr>, "'Bruno Friedmann'" <bruno(at)ioda-net(dot)ch>, pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: [pgsql-fr-generale] RE: [pgsql-fr-generale] RE: [pgsql-fr-generale] lié un generate_series et un autre select
Date: 2010-11-03 13:51:01
Message-ID: 4CD168C5.1080906@interieur.gouv.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,
pour numéroter de 5 en 5 (je ne connais pas le contexte, mais cela marche) :

SELECT GENERATE_SERIES FROM GENERATE_SERIES(1,100,5);

Cdt
-------- Message original --------
Sujet : [pgsql-fr-generale] RE: [pgsql-fr-generale] RE:
[pgsql-fr-generale] lié un generate_series et un autre select
De : Olivier Ducteil <olivier(dot)ducteil(at)l-olive(dot)fr>
Pour : 'Dimitri Fontaine' <dimitri(at)2ndQuadrant(dot)fr>
Copie à : "'Bruno Friedmann'" <bruno(at)ioda-net(dot)ch>,
pgsql-fr-generale(at)postgresql(dot)org
Date : 03/11/2010 11:36
> Bonjour
>
> Aie en effet, même dans une transaction, on peut avoir des trous, ou des effet de bord.
> A moins d'y inclure la création d'une séquence temporaire ... là je rame un peu !
>
> Par contre, je ne vois pas comment utiliser generate_series() pour le numéroter les ligne de 5 en 5.
>
> Sachant que :
>
>>> SELECT generate_series(0, 5000, 5)::numeric(12,4), f.* FROM foo f limit 100
>>>
>
> .. ne fonctionne pas !
>
> Cordialement
> Olivier
>
>
> -----Message d'origine-----
> De : pgsql-fr-generale-owner(at)postgresql(dot)org [mailto:pgsql-fr-generale-owner(at)postgresql(dot)org] De la part de Dimitri Fontaine
> Envoyé : mercredi 3 novembre 2010 10:16
> À : Olivier Ducteil
> Cc : 'Bruno Friedmann'; pgsql-fr-generale(at)postgresql(dot)org
> Objet : Re: [pgsql-fr-generale] RE: [pgsql-fr-generale] lié un generate_series et un autre select
>
> "Olivier Ducteil" <olivier(dot)ducteil(at)l-olive(dot)fr> writes:
>
>> Grâce à toi, je me suis penché un peu plus sur ces nouvelles fonctionnalités.
>> Elles permettraient de réduire certaines de nos requêtes ; il faut "juste" basculer nos serveurs sur des versions plus récentes de PostgreSQL.
>> Mais laquelle choisir ?
>>
>
> Je dirais 9.0, mais 8.4 pourrait être raisonnable également.
>
>
>> SELECT setval('seq_mes_lignes ',1, true);
>> SELECT nextval(' seq_mes_lignes ')::numeric(12,4)-1 As numero_ligne,
>> f.* FROM foo f Mais c'est une option !
>>
>
> Uniquement avec la garantie que la requête ne sera jamais lancée par plusieurs connections en même temps. Donc à mon avis, non, ça n'est pas une solution, c'est une source supplémentaire de problèmes.
>
> Les solutions à base de generate_series, si très spécialisées PostgreSQL, me semblent un meilleur choix en attendant les window function.
>
> --
> Dimitri Fontaine
> http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
>
> --
> Sent via pgsql-fr-generale mailing list (pgsql-fr-generale(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-fr-generale
>
>
>

--

Jean-Michel SOUCHARD
Expert SGBD
au Centre de Compétence Bases de Données

Ma ligne directe : 01.40.57.58.63
La télécopie du service : 01.40.57.56.30

jean-michel(dot)souchard(at)interieur(dot)gouv(dot)fr
<mailto:jean-michel(dot)souchard(at)interieur(dot)gouv(dot)fr>
jm(dot)souchard(at)gmail(dot)com <mailto:jean-michel(dot)souchard(at)interieur(dot)gouv(dot)fr>

Me rejoindre sur

<http://www.viadeo.com/invitation/jean-michel.souchard>
<http://fr.linkedin.com/pub/jean-michel-souchard/10/b1a/b0>

en clickant sur un des logos

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message damien clochard 2010-11-08 10:28:26 Appel à Projets 2010
Previous Message Bruno Friedmann 2010-11-03 12:56:41 Re: [pgsql-fr-generale] RE: [pgsql-fr-generale] lié un generate_series et un autre select