Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: Obtene r "Curval()" de inserción masiva


  • 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>
  • Subject: Re: Obtene r "Curval()" de inserción masiva
  • Date: Thu, 28 Feb 2008 08:46:28 -0300
  • Message-id: <20080228114628(dot)GB4764(at)alvh(dot)no-ip(dot)org>

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


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



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group