Search Postgresql Archives

Re: Serial Unique question

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

 



Michael Fuhr wrote:
On Mon, Aug 15, 2005 at 11:07:31AM -0400, Madison Kelly wrote:

This might seem like an odd question but I couldn't find the answer in the docs (did I miss the obvious?).


The serial type is a just convenient way to define an integer column
that takes its default value from a sequence, so look for documentation
on sequences.  Here are some links for the latest release:

http://www.postgresql.org/docs/8.0/static/datatype.html#DATATYPE-SERIAL
http://www.postgresql.org/docs/8.0/static/sql-createsequence.html
http://www.postgresql.org/docs/8.0/static/functions-sequence.html


I want to use a 'serial uniue' column in a table but there is likely to be many, many inserts and deletes from this column. I was wondering, what happens when the serial value reaches '2,147,483,647'? Does it roll back over to '1' and keep going or will the database start erroring out?


Sequences are 64 bits, so if you have a 32-bit serial column then
you'll probably get an "integer out of range" error when nextval()
returns a value higher than 2^31-1 (2,147,483,647).  To learn about
what happens when all 64 bits are exhausted, see the CYCLE and NO
CYCLE options of the CREATE SEQUENCE command.


This isn't likely to be a problem any time soon, but over the course of
a year or more it might be.


Consider using bigserial instead of serial -- you'll get 2^63-1
values instead of 2^31-1.  If you consume one million values per
second, it'll take about 300,000 years for the sequence to cycle.


Well, I should have done my math. :p I think that is a tolerable range the (and no were near what my program will ever hit!)

Thanks!

Madison

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

[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