Re: sequence not restarting in a for loop (actually semi-random numbers)

From: Ivan Sergio Borgonovo <mail(at)webthatworks(dot)it>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: sequence not restarting in a for loop (actually semi-random numbers)
Date: 2008-11-12 17:01:53
Message-ID: 20081112180153.370326b7@dawn.webthatworks.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Wed, 12 Nov 2008 11:17:03 -0500
Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Ivan Sergio Borgonovo <mail(at)webthatworks(dot)it> writes:
> > insert into mytop (id,n) select id, nextval('tmp_seq')
> > from biglist join mylist on biglist.id=mylist
> > order by biglist.something limit 3;
>
> I suspect you are expecting the nextval()s to be done after the
> LIMIT, but actually they'll most likely be done before it, ie
> you're getting a lot of unintended nextvals happening. Try doing
> the ORDER BY/LIMIT in a sub-select.

Thanks. That did it.

I think I've seen similar replies before... but I couldn't relate
them to my problem.

I'd do like Bart Simpson: order by, limit, nextval, sequence, order
by, limit, nextval, sequence...
so that this answer will be well indexed ;)

--
Ivan Sergio Borgonovo
http://www.webthatworks.it

In response to

Browse pgsql-general by date

  From Date Subject
Next Message tv 2008-11-12 17:02:17 Re: Post to another db using pl/pgsql
Previous Message Robert Fitzpatrick 2008-11-12 16:55:45 Post to another db using pl/pgsql