Primary keys and NOT NULL

Started by Susan Laneover 23 years ago2 messagesgeneral
Jump to latest
#1Susan Lane
suel@dpn.com

Hi -

I noticed that all of my primary keys are specified as not null and I did
not specify not null when I built the tables. Does Postgres automatically
make all primary keys not null? This is a problem for me because I have a
few tables that have multiple column primary keys where one of the columns
may be null. Is there any way for me to change the not null specification?
or is that a requirement for primary keys in Postgres? This was not the
case in Oracle....which is where I'm trying to port my data from.
--
Susan Lane
DPN, Incorporated
4631 Spring Mountain Road
Las Vegas, NV 89102
Email suel@dpn.com
Ph. (702) 873-3282
Fax (702) 873-3913
http://www.dpn.com

#2Stephan Szabo
sszabo@megazone23.bigpanda.com
In reply to: Susan Lane (#1)
Re: Primary keys and NOT NULL

On Thu, 11 Jul 2002, Susan Lane wrote:

Hi -

I noticed that all of my primary keys are specified as not null and I did
not specify not null when I built the tables. Does Postgres automatically
make all primary keys not null? This is a problem for me because I have a
few tables that have multiple column primary keys where one of the columns
may be null. Is there any way for me to change the not null specification?
or is that a requirement for primary keys in Postgres? This was not the
case in Oracle....which is where I'm trying to port my data from.

At least SQL92, primary keys are not satisifed if any of the values are
null, by my reading:

"A unique constraint is satisfied if and only if no two rows in
a table have the same non-null values in the unique columns. In
addition, if the unique constraint was defined with PRIMARY KEY,
then it requires that none of the values in the specified column or
columns be the null value."

Do you really need this as a primary key as opposed to a unique
constraint?