Search Postgresql Archives

Re: Serials jumping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I did not know that about every call to nextval, but
that does make sense.

I need a way to return the new ID of the SERIAL column
on INSERT to add the related rows into the proper
tables explictly. Similiar to how I could use
@@identity to retrive the value in sql2000. 

The only ways I saw was nextval or currval? Is there a
best practice for returning the new identities value?
I'd prefer it in one call if possible.

Thank you.


--- Alban Hertroys <alban@xxxxxxxxxxxxxxxxx> wrote:

> Matt A. wrote:
> > I have a serial column on a test box DB. I'm
> > using "select nextval('some_seq') as id" to insert
> a
> > id in sequence. It doesn't return the next value
> but
> > at least 4 or so (random) ahead of the current
> > value. Is this to be expected? 
> 
> You probably did some extra selects on the sequence
> somewhere, or the 
> sequence is set to increment by a number >1.
> 
> > Is this the most efficient way to retreive an id
> value
> > for insert a row then insert the resulting row
> into
> > the related tables? 
> 
> Why don't you just use the default value of the
> serial type? You can do 
> that by leaving the column out of the insert query.
> 
> > Is there a more efficient/proper way? I would like
> all
> > my records to increment by 1 if possible. I'd be
> very
> > grateful to read your opinion.
> 
> Sequences increment at every call of nextval.
> Doesn't matter whether you 
> used that value for anything or not, it always
> increments. Even if you 
> rollback the transaction or interupt the query.
> 
> Sequences ensure that multiple concurrent inserts
> never get the same 
> number back from them, so that you don't get "unique
> constraint 
> violation"'s.
> They're not designed to always increment by 1.
> 
> Regards,
> 
> -- 
> Alban Hertroys
> alban@xxxxxxxxxxxxxxxxx
> 
> magproductions b.v.
> 
> T: ++31(0)534346874
> F: ++31(0)534346876
> M:
> I: www.magproductions.nl
> A: Postbus 416
>     7500 AK Enschede
> 
> //Showing your Vision to the World//
> 
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
> 
>                http://www.postgresql.org/docs/faq
> 



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux