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: [pgsql-es-ayuda] Obtener "Curval()" de ins erció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 ins erción masiva
  • Date: Thu, 28 Feb 2008 08:48:13 -0500
  • Message-id: <002e01c87a10$92189890$5800a8c0(at)amadeus(dot)net(dot)co>


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




Home | Main Index | Thread Index

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