Thread: oids as primary keys?

oids as primary keys?

From
"Cima"
Date:
hi ,

someone has drawn my attention to the fact that oids may not be such a good
idea to set as a primary key in a table. i have designed a relativley large
database and defined oids as primary keys. i would like your opinions or
recomendations on this.


thanx.


Re: oids as primary keys?

From
Olivier Thauvin
Date:
Le Saturday 16 April 2005 00:42, Cima a écrit :
> hi ,
>
> someone has drawn my attention to the fact that oids may not be such a good
> idea to set as a primary key in a table. i have designed a relativley large
> database and defined oids as primary keys. i would like your opinions or
> recomendations on this.

It's surelly me, I reply to you directly instead to the list :(

About this I find where I read the warning:
http://www.postgresql.org/docs/8.0/interactive/datatype-oid.html

where you can read:

"The oid type is currently implemented as an unsigned four-byte integer.
Therefore, it is not large enough to provide database-wide uniqueness in
large databases, or even in large individual tables. So, using a user-created
table's OID column as a primary key is discouraged. OIDs are best used only
for references to system tables."

Notice it is maybe not a problem for you currently.

Attachment

Re: oids as primary keys?

From
Frank Bax
Date:
At 06:42 PM 4/15/05, Cima wrote:
>someone has drawn my attention to the fact that oids may not be such a good
>idea to set as a primary key in a table. i have designed a relativley large
>database and defined oids as primary keys. i would like your opinions or
>recomendations on this.

         http://www.postgresql.org/docs/faqs.FAQ.html#4.12


Re: oids as primary keys?

From
Michael Fuhr
Date:
On Fri, Apr 15, 2005 at 03:42:40PM -0700, Cima wrote:
>
> someone has drawn my attention to the fact that oids may not be such a good
> idea to set as a primary key in a table. i have designed a relativley large
> database and defined oids as primary keys. i would like your opinions or
> recomendations on this.

See "Object Identifier Types" in the "Data Types" chapter of the
documentation:

http://www.postgresql.org/docs/8.0/interactive/datatype-oid.html

"The oid type is currently implemented as an unsigned four-byte
integer.  Therefore, it is not large enough to provide database-wide
uniqueness in large databases, or even in large individual tables.
So, using a user-created table's OID column as a primary key is
discouraged.  OIDs are best used only for references to system
tables."

See also "What is an OID?  What is a TID?" in the FAQ:

http://www.postgresql.org/docs/faqs.FAQ.html#4.12

"OIDs are autotomatically assigned unique 4-byte integers that are
unique across the entire installation.  However, they overflow at
4 billion, and then the OIDs start being duplicated."

"To uniquely number columns in user tables, it is best to use SERIAL
rather than OIDs because SERIAL sequences are unique only within a
single table and are therefore less likely to overflow.  SERIAL8
is available for storing eight-byte sequence values."

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

Re: oids as primary keys?

From
Andres Ledesma
Date:
Hi,

If you're creating a database, you probably have a
data model about that 'thing' you're trying to craft
your system upon.

If this table in which you used the oids  as PK
correspond to any object of your model, you better use
 a unique attribute to identify that object, keeping
the semantics and the spirit of the relational model.

Just an idea !

Andres ...

--- Cima <ruel.cima@facinf.uho.edu.cu> wrote:
> hi ,
>
> someone has drawn my attention to the fact that oids
> may not be such a good
> idea to set as a primary key in a table. i have
> designed a relativley large
> database and defined oids as primary keys. i would
> like your opinions or
> recomendations on this.
>
>
> thanx.
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to
> majordomo@postgresql.org
>



__________________________________
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!
http://smallbusiness.yahoo.com/resources/