Re: Sequence Question
От | Prabu Subroto |
---|---|
Тема | Re: Sequence Question |
Дата | |
Msg-id | 20040805065440.53274.qmail@web41808.mail.yahoo.com обсуждение исходный текст |
Ответ на | Sequence Question (Oscar Tuscon <obtuse@bmwe30.net>) |
Список | pgsql-general |
kv=# create sequence sales_salesid_seq; CREATE SEQUENCE kv=# select setval('sales_salesid_seq', (select max(salesid) from sales)+1); setval -------- 16 (1 row) kv=# alter table sales alter column salesid set default nextval('sales_serialid_ seq'); ALTER TABLE Oscar Tuscon <obtuse@bmwe30.net> wrote: > I'm looking at ways to get batches of sequence > values s faster. I don't want to set cache or > increment to a large number for a variety of > reasons. I need to grab id's in batches of varying > numbers at various times, from 1 to several thousand > at once. > Doing it 1 at a time works, but more time goes into > it than I'd like. I tried setting cache_value high > but the database roundtrips were eating more time > that I wanted to see; I only saw a 25% improvement > in average time. > > SO... is the following approach safe? That is, will > this be atomic, or is there a possibility that > another connection could squeeze in a select > nextval() between the select nextval() and the > setval below? > If it's safe I'd do this and take the sequences as > the new currval - #I asked for (1500 or whatever). > > mydb=# select setval('my_id_seq', (select > nextval('my_id_seq')+1500)); > > Thanks > Oscar > > > _____________________________________________________________ > The BMW E30 community on the web---> > http://www.bmwe30.net > > ---------------------------(end of > broadcast)--------------------------- > TIP 2: you can get off all lists at once with the > unregister command > (send "unregister YourEmailAddressHere" to > majordomo@postgresql.org) > __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail
В списке pgsql-general по дате отправления: