Re: Get block of N numbers from sequence

Поиск
Список
Период
Сортировка
Искать
От
Thomas Guettler
Тема
Re: Get block of N numbers from sequence
Дата
в 10:32:34
Msg-id
4A12B4E0.9060404@tbz-pariv.de
Ответ на
Re: Get block of N numbers from sequence (hubert depesz lubaczewski)
Список
Дерево обсуждения
Get block of N numbers from sequence Thomas Guettler <hv@tbz-pariv.de>
Re: Get block of N numbers from sequence hubert depesz lubaczewski <depesz@depesz.com>
Re: Get block of N numbers from sequence Thomas Guettler <hv@tbz-pariv.de>
Re: Get block of N numbers from sequence hubert depesz lubaczewski <depesz@depesz.com>
Re: Get block of N numbers from sequence Merlin Moncure <mmoncure@gmail.com>
Re: Get block of N numbers from sequence Craig Ringer <craig@postnewspapers.com.au>
Re: Get block of N numbers from sequence Grzegorz Jaśkiewicz <gryzman@gmail.com>
Re: Get block of N numbers from sequence Boszormenyi Zoltan <zb@cybertec.at>
Re: Get block of N numbers from sequence Thomas Guettler <hv@tbz-pariv.de>
Re: Get block of N numbers from sequence Thomas Guettler <hv@tbz-pariv.de>
Re: Get block of N numbers from sequence Merlin Moncure <mmoncure@gmail.com>


hubert depesz lubaczewski schrieb:
> On Tue, May 19, 2009 at 01:45:17PM +0200, Thomas Guettler wrote:
>> how can you get N numbers (without holes) from a sequence?
> 
> alter sequence XXX increment by 1000;
> select nextval('XXX');
> alter sequence XXX increment by 1;

If other processes run nextval() between "increment by 1000" and "increment by 1",
they leave big holes in the sequence.

Unfortunately begin; ... rollback; does not help. the "alter sequence" command gets
executed, even if the transaction gets rolled back.

db=# begin; alter SEQUENCE foo_seq  increment by 100; rollback;
BEGIN
ALTER SEQUENCE
ROLLBACK

db=# select * from foo_seq;
     sequence_name      | last_value | increment_by |      max_value      | min_value | cache_value | log_cnt |
is_cycled | is_called
------------------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------
 foo_seq |   90508740 |          100 | 9223372036854775807 |         1 |           1 |       6 | f         | t

db=# select version();
 PostgreSQL 8.2.6 on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.2.1 (SUSE Linux)

  Thomas


-- 
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
В списке pgsql-general по дате отправления
От: kelvin273
Дата:
Сообщение: my insertion script don't work
От: A. Kretschmer
Дата:
FAQ