Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How large can an id get in postgresql

I am using postgresql, and was wondering how large

id INTEGER PRIMARY KEY

can get compared to

id SERIAL PRIMARY KEY

In java an int is 4 bytes (32 bits) so it can get up to 2,147,483,647. Is this the case in postgresql? If so does that mean I cannot go past 2,147,483,647 rows?

like image 344
abden003 Avatar asked Jul 19 '13 21:07

abden003


1 Answers

Here is a handy chart for PostgreSQL:

Name        Storage Size    Description                       Range
smallint    2 bytes         small-range integer               -32768 to +32767
integer     4 bytes         usual choice for integer          -2147483648 to +2147483647
bigint      8 bytes         large-range integer               -9223372036854775808 to 9223372036854775807
smallserial 2 bytes         small autoincrementing integer    1 to 32767
serial      4 bytes         autoincrementing integer          1 to 2147483647
bigserial   8 bytes         large autoincrementing integer    1 to 9223372036854775807

Source

Your assessment is right, you'd run out of unique ID's if you used a data type that was insufficient.

like image 81
Hart CO Avatar answered Sep 22 '22 08:09

Hart CO