I am going to try to move this over the sql list, since it doesn't belong on bugs.
On Tue, Feb 24, 2004 at 23:47:48 +1300, Martin Langhoff <[EMAIL PROTECTED]> wrote: > Tom Lane wrote: > > >How about > > > >SELECT nextval('seq'); -- ignore result > > > >INSERT INTO ... VALUES (currval('seq'), currval('seq')); > > > > > > Well, it works for my sample case, I have to agree. Maybe I should > mention that I tried to boil down the bugreport to the simplest repro > case I could. > > My actual SQL looks roughly like > > INSERT INTO destination (record_id, page, row) > SELECT > (SELECT record_id FROM record ORDERED BY name), > (NEXTVAL('seq') / 200), > (CURRVAL('seq') % 200) > > While I have a workaround, I am definitely curious as to whether there > is actually a way to do it. Thanks for your patience. I think the following will do what you want: INSERT INTO destination (record_id, page, row) SELECT record_id, seq/200, seq%200 FROM (SELECT record_id, nextval('seq') as seq FROM record ORDERED BY name); ---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]