Re: Numero de Tuple

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)

In response to

Browse pgsql-es-ayuda by date

  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