Re: traitement par lots et sequence

From: CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
To: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: traitement par lots et sequence
Date: 2019-06-11 17:50:48
Message-ID: 20190611195048.Horde.RrmGF-qhgNWC6BH0D5mz6w4@messagerie.c-s.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

ok

mais dans le
WITH ins_t_mere AS(INSERT INTO t(a,b,c) VALUES (1,'a','aa') RETURNING a)
> INSERT INTO t_fille SELECT a, 'b', 'bb') FROM ins_t_mere;
ne fait pas un traitement par lot

merci

Anthony Nowocien <anowocien(at)gmail(dot)com> a écrit :

> Bonjour Pierre,
>
> Peux-tu utiliser la clause RETURNING de l'INSERT?
>
> Exemple :
> INSERT INTO t(a,b,c) VALUES (1,'a','aa') RETURNING a;
>
> WITH ins_t_mere AS(INSERT INTO t(a,b,c) VALUES (1,'a','aa') RETURNING a)
> INSERT INTO t_fille SELECT a, 'b', 'bb') FROM ins_t_mere;
>
> Voir https://www.postgresql.org/docs/current/sql-insert.html
>
> Dans la partie VALUE, tu pourras peut-être aussi utiliser DEFAULT pour ta
> colonne d'ID.
>
> Anthony
>
> On Tuesday, June 11, 2019, CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
> wrote:
>> bonjour
>>
>> probléme :
>>
>> soit 2 tables : T_meres et T_filles liées par T_meres.idMere
>>
>> je veux faire du traitement par lots pour avoir des performances car gros
> volumes
>>
>> donc insertion par lots des T_meres sous la forme suivante
>>
>> insert into T_meres idMere,datamere values
> ((1,datam1),(2,datam2),(3,datam3), .... (n,datamn));
>>
>> idem insertion par lots des T_filles sous la forme suivante
>>
>> **** les n filles de la mére 1 *****
>>
>> insert into T_filles idFils,idMere,datamere values
> ((1,1,dataf1),(1,1,dataf2),(1,1,dataf3), .... (n,1,datafn));
>> insert into T_filles idFils,idMere,datamere values
> ((2,1,dataf1),(2,1,dataf2),(2,2,dataf3), .... (2,1,datafn));
>> .......
>> insert into T_filles idFils,idMere,datamere values
> ((n,1,dataf1),(n,1,dataf2),(3,1,dataf3), .... (n,1,datafn));
>>
>> **** les n filles de la mére 2 *****
>>
>> insert into T_filles idFils,idmere,datamere values
> ((1,2,dataf1),(2,2,dataf2),(3,2,dataf3), .... (n,2,datafn));
>> insert into T_filles idFils,idmere,datamere values
> ((1,2,dataf1),(2,2,dataf2),(3,2,dataf3), .... (n,2,datafn));
>> .......
>> insert into T_filles idFils,idmere,datamere values
> ((1,2,dataf1),(2,n,dataf2),(3,n,dataf3), .... (n,n,datafn));
>>
>> etc ....
>>
>> Ma question :
>> Comment recuperer ou provisionner la plage de sequence balayé dans
> l'insert des méres pour l'utiliser dans l'insert des filles dans un
> traitement par lots de façon la plus éfficace ?
>>
>> merci pour toute idée
>>
>>
>>

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Thomas Boussekey 2019-06-11 20:42:28 Re: traitement par lots et sequence
Previous Message Anthony Nowocien 2019-06-11 14:46:59 Re: traitement par lots et sequence