From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Jesus Gustavo Macias Barba <jgmacias(at)tutopia(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Numero de Tuple |
Date: | 2004-09-14 15:51:50 |
Message-ID: | 20040914155150.GA4301@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Mon, Sep 13, 2004 at 10:56:32AM -0500, Jesus Gustavo Macias Barba wrote:
> al realiar una consulta asi:
>
> select oid,nombre,calle from personas;
>
> con oid me muestra el numero de registro global en la base de datos
Es mala idea usar el Oid ... mejor crea las tablas con
CREATE TABLE ... WITHOUT OIDS y olvidate que existen.
> Pero, yo quiero saber el numero de linea desplegado (tuple)
>
> ¿Hay alguna manera?
Si, usa una secuencia:
alvherre=# create table hum (a text);
CREATE TABLE
alvherre=# insert into hum values ('uno');
INSERT 19789 1
alvherre=# insert into hum values ('dos');
INSERT 19790 1
alvherre=# insert into hum values ('tres');
INSERT 19791 1
alvherre=# insert into hum values ('cinco');
INSERT 19792 1
alvherre=# create temporary sequence tuple_counter;
CREATE SEQUENCE
alvherre=# select *, nextval('tuple_counter') from hum;
a | nextval
-------+---------
uno | 1
dos | 2
tres | 3
cinco | 4
(4 filas)
Asegurate de usar una secuencia nueva para cada consulta, o mejor, haz
un
select setval('tuple_counter', 1, false)
despues de usarla para volverla al estado inicial.
Ojo que este truco puede tener efectos extran~os con consultas complejas ...
estudialo con cuidado.
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La espina, desde que nace, ya pincha" (Proverbio africano)
From | Date | Subject | |
---|---|---|---|
Next Message | Betsa | 2004-09-14 17:29:15 | PostgreSQL |
Previous Message | Alvaro Herrera | 2004-09-14 15:13:44 | Re: Problema al arrancar postgres |