| From: | bricklen <bricklen(at)gmail(dot)com> |
|---|---|
| To: | Shaul Dar <shauldar(at)gmail(dot)com> |
| Cc: | pgsql-performance(at)postgresql(dot)org |
| Subject: | Re: Getting a random row |
| Date: | 2009-10-14 00:21:10 |
| Message-ID: | 33b743250910131721l6a4f6de4i24395ff76c5c416e@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-performance |
2009/10/13 Grzegorz Jaśkiewicz <gryzman(at)gmail(dot)com>:
>
>
> 2009/10/13 Shaul Dar <shauldar(at)gmail(dot)com>
>>
>> Sorry, I guess I wasn't clear.
>> I have an existing table in my DB, and it doesn't have a column with
>> serial values (actually it did originally, but due to later deletions of
>> about 2/3 of the rows the column now has "holes"). I realize I could add a
>> new serial column, but prefer not to change table + the new column would
>> also become nonconsecutive after further deletions. The nice thing about
>> Oracle's "rownum" is that it' a pseudo-column", not a real one, and AFAIK is
>> always valid.
>
> change the default of that column to use sequence.
> For instance, lookup CREATE SEQUENCE in manual, and ALTER TABLE .. SET
> DEFAULT ..
>
> for example of how it looks, just create table foo(a serial), and check its
> definition with \d+ foo
>
>
>
> --
> GJ
>
You could emulate rownum (aka rank) using a TEMPORARY sequence applied
to your result set.
http://www.postgresql.org/docs/8.3/interactive/sql-createsequence.html
Not sure if this is what you're after though?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Scott Marlowe | 2009-10-14 01:18:30 | Re: Getting a random row |
| Previous Message | Robert Haas | 2009-10-13 16:56:44 | Re: Getting a random row |