Re: A problem with sequences...
От | Stephan Szabo |
---|---|
Тема | Re: A problem with sequences... |
Дата | |
Msg-id | 20030221110807.P60361-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Re: A problem with sequences... (Doug McNaught <doug@mcnaught.org>) |
Список | pgsql-general |
On 21 Feb 2003, Doug McNaught wrote: > Dmitry Tkach <dmitry@openratings.com> writes: > > > select setval('answer_id_seq', id) from answer order by id desc limit 1; > > > > Now, for some reason this reports a correct value, but what actually > > gets set is wrong! > > I'm guessing that 'setval' is getting called more than once here. > Your 'LIMIT 1' controls how many rows are returned to the client, but > the server is probably generating more rows internally. So this is I'd totally missed that, it's probably doing a plan of seqscan + sort to run the query. > > select setval ('answer_id_seq', max(id)) from answer > > is right. Or possibly: select setval('answer_id_seq', id) from (select id from answer order by id desc limit 1) as foo; which might if the table gets big enough use an index scan.
В списке pgsql-general по дате отправления: