Re: PRIMARY KEY on a *group* of columns imply that each column is NOT NULL? - Mailing list pgsql-general

From Guy Rouillier
Subject Re: PRIMARY KEY on a *group* of columns imply that each column is NOT NULL?
Date
Msg-id CC1CF380F4D70844B01D45982E671B239E87C4@mtxexch01.add0.masergy.com
Whole thread Raw
In response to PRIMARY KEY on a *group* of columns imply that each column is NOT NULL?  (Stephane Bortzmeyer <bortzmeyer@nic.fr>)
Responses Re: PRIMARY KEY on a *group* of columns imply that each column is NOT
List pgsql-general
Stephane Bortzmeyer wrote:
> If I define a primary key:
>
>        name TEXT NOT NULL,
>        address INET,
>        PRIMARY KEY(name, address)
>
> the definition (seen by \d) becomes:
>
>  name          | text                        | not null
>  address       | inet                        | not null
>
> "address" is now not null, which I do not want. It seems unnecessary:
> I just want the tuple (name, address) to be unique, which seems
> possible even if some 'address' values are NULL.
>
> It does not appear to be documented in
>
http://www.postgresql.org/docs/7.4/interactive/ddl-constraints.html#AEN1
975.
> Is there a workaround?

Per the SQL Commands Reference, under CREATE TABLE:

"The primary key constraint specifies that a column or columns of a
table may contain only unique (non-duplicate), nonnull values.
Technically, PRIMARY KEY is merely a combination of UNIQUE and NOT NULL"

Primary key columns cannot contain null values.

--
Guy Rouillier


pgsql-general by date:

Previous
From: Stephane Bortzmeyer
Date:
Subject: PRIMARY KEY on a *group* of columns imply that each column is NOT NULL?
Next
From: "Mohan, Ross"
Date:
Subject: Re: UltraSPARC versus AMD - Slowaris