Re: BUG #1083: Insert query reordering interacts badly with
От | Bruno Wolff III |
---|---|
Тема | Re: BUG #1083: Insert query reordering interacts badly with |
Дата | |
Msg-id | 20040227134653.GA13683@wolff.to обсуждение исходный текст |
Ответ на | Re: BUG #1083: Insert query reordering interacts badly with (Martin Langhoff <martin@catalyst.net.nz>) |
Список | pgsql-bugs |
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 <martin@catalyst.net.nz> 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);
В списке pgsql-bugs по дате отправления: