Re: [GENERAL] get the previous assigned sequence value
От | Nikolay Mijaylov |
---|---|
Тема | Re: [GENERAL] get the previous assigned sequence value |
Дата | |
Msg-id | 002001bf4252$a9051fa0$ce2a18c3@skillbrokers.bg обсуждение исходный текст |
Ответ на | Re: [GENERAL] get the previous assigned sequence value (Stuart Rison <rison@biochemistry.ucl.ac.uk>) |
Список | pgsql-general |
Why you discuss it???? The problem is quite clean and it was solvev many years ago..... 1. Get the *next* sequence value: select nextval("gogo_seq"); 2. Store it into a variable (for example $X) 3. Insert proper data (and and sequence value) insert into gogo values( $X, 'NMMM', 'mailto:nmmm@nmmm.nu'); 4. Use value $X, as u want insert into gogo_detail values( $X, 'bla bla0'); insert into gogo_detail values( $X, 'bla bla1'); insert into gogo_detail values( $X, 'bla bla2'); Am I clear? nmmm -------------------------------------------------------------- The reboots are for hardware upgrades! "http://www.nmmm.nu; <nmmm@nmmm.nu> ----- Original Message ----- From: Adriaan Joubert <a.joubert@albourne.com> Cc: Dev Elop <dev@archonet.com>; pgsql-general <pgsql-general@postgreSQL.org> Sent: 09 Äåêåìâðè 1999 ã. 15:22 Subject: Re: [GENERAL] get the previous assigned sequence value > > > With this second method, you'd probably need to beware race conditions. If > > > another process inserts a record into mytable after you do but before you > > > call currval(), then you'll get the wrong value. > > > > > > Not an issue if you've only got one process accessing the table - probably > > > is one if you have two or more. > > > > I don't think that's true the currval belongs to the process (as it were) > > so that what happens is that currval remains unchanged by inserts by other > > processes. > > > > nextval however is 'affected' meaning that nextval won't just return > > curval+1, it returns whatever the next sequence item is taking into > > account the increasses caused by other processes. > > > > at least I seem to remember that from previous postings... any seconders? > > > currval always gives you the most recent sequence value returned by your > own back-end, so that it is not affected by waht other processes do. > With nextval it also depends on what cache size you chose. If youchose > 1, the default, nextval is directly affected by whether other processes > have doena nextval. If the caches is larger this is not necessarily the > case. > > Adriaan > > ************
В списке pgsql-general по дате отправления: