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
>>
>>
>>
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 |