Discussion:
using oids as primary keys and foreign keys
(too old to reply)
David Bear
2004-11-08 22:36:26 UTC
Permalink
I've looked in the archives searching on oid and 'access' (microsoft)
to see how others have handled migration from data bases in ms-access
to postgresql. MS access has an auto-inc field that is used frequently
as a uniq id. Seems the OID has the same function. Yet, I've seem
parts of messages that say not to use the OID in that manner, but
nothing seems 'definitive'.

Can I use an OID as a foreign key in another table?

If not, what is the prefered method for replicating the auto-inc field
that ms-access users are so fond of... a 'sequence'?
--
David Bear
phone: 480-965-8257
fax: 480-965-9189
College of Public Programs/ASU
Wilson Hall 232
Tempe, AZ 85287-0803
"Beware the IP portfolio, everyone will be suspect of trespassing"

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to ***@postgresql.org
Michael Fuhr
2004-11-08 23:29:43 UTC
Permalink
Post by David Bear
I've looked in the archives searching on oid and 'access' (microsoft)
to see how others have handled migration from data bases in ms-access
to postgresql. MS access has an auto-inc field that is used frequently
as a uniq id. Seems the OID has the same function. Yet, I've seem
parts of messages that say not to use the OID in that manner, but
nothing seems 'definitive'.
The PostgreSQL documentation recommends against using OIDs as
primary keys:

http://www.postgresql.org/docs/7.4/static/datatype-oid.html
Post by David Bear
Can I use an OID as a foreign key in another table?
If not, what is the prefered method for replicating the auto-inc field
that ms-access users are so fond of... a 'sequence'?
Yes, usually by creating a field of type SERIAL:

http://www.postgresql.org/docs/7.4/static/datatype.html#DATATYPE-SERIAL
--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
(send "unregister YourEmailAddressHere" to ***@postgresql.org)
Loading...