Re: [pgsql-es-ayuda] Obtener "Curval()" de inserción masiva

From: "Raul Andres Duque" <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>, "Rodriguez Fernando" <rodriguez(at)ort(dot)edu(dot)uy>
Cc: "Gabriel Hermes Colina Zambra" <hermeszambra(at)yahoo(dot)com>, "Ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Obtener "Curval()" de inserción masiva
Date: 2008-02-28 13:48:13
Message-ID: 002e01c87a10$92189890$5800a8c0@amadeus.net.co
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)commandprompt(dot)com>
To: "Rodriguez Fernando" <rodriguez(at)ort(dot)edu(dot)uy>
Cc: "Gabriel Hermes Colina Zambra" <hermeszambra(at)yahoo(dot)com>; "Raul Andres
Duque" <ra_duque(at)yahoo(dot)com(dot)mx>; "Ayuda" <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Thursday, February 28, 2008 6:46 AM
Subject: Re: [pgsql-es-ayuda] Obtener "Curval()" de inserción masiva

>>>> Raul Andres Duque wrote:
>>>>
>>>>> Mi duda es: Después de ejecutar esta sentencia (INSERT), cómo puedo
>>>>> saber TODOS los valores de secuencia generados?
>
> Sorry, hay una manera trivial de saber los valores devueltos por la
> secuencia:
>
> insert into duque
> select nextval('duque_a_seq')
> from generate_series(1, 20)
> returning a;
>
>
> Es facil demostrar que funciona bien concurrentemente: usas una
> subconsulta que se intercale con otra sesion. Por ej.
>
> alvherre=# insert into duque select a from (select nextval('duque_a_seq')
> as a, pg_sleep(1) from generate_series(1, 20)) foo returning a;
> a
> ----
> 41
> 42
> 43
> 44
> 45
> 46
> 47
> 48
> 49
> 50
> 51
> 52
> 53
> 54
> 55
> 56
> 58
> 60
> 62
> 64
> (20 rows)
>
> INSERT 0 20
>
>
> y en otra sesion, que eche a andar cuando esa llevaba ya algun tiempo:
>
> alvherre=# insert into duque select a from (select nextval('duque_a_seq')
> as a, pg_sleep(1) from generate_series(1, 20)) foo returning a;
> a
> ----
> 57
> 59
> 61
> 63
> 65
> 66
> 67
> 68
> 69
> 70
> 71
> 72
> 73
> 74
> 75
> 76
> 77
> 78
> 79
> 80
> (20 rows)
>
> INSERT 0 20
>

Excelente Alvaro !!!!

No había pensado en que el "returning" me devolviera la lista completa !!!!

Muchas gracias.

Atentamente,

RAUL DUQUE
Bogotá, Colombia

>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jean-Paul Argudo 2008-02-28 14:50:11 Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Obtener "Curval()" de inserción masiva
Previous Message Alvaro Herrera 2008-02-28 11:46:28 Re: Obtener "Curval()" de inserción masiva