From: | Robert Haas <robertmhaas(at)gmail(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | Grzegorz Szpetkowski <gszpetkowski(at)gmail(dot)com>, pgsql-docs(at)postgresql(dot)org |
Subject: | Re: 5.3.5. Foreign Keys (The SQL Language) possible enhance |
Date: | 2011-09-15 11:42:47 |
Message-ID: | CA+TgmobKVTCV9p1V8MG_VFfpNe2qeweckmT_+jNFHkG8wVuyyQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs |
On Sun, Sep 11, 2011 at 9:09 PM, Bruce Momjian <bruce(at)momjian(dot)us> wrote:
> Robert Haas wrote:
>> On Fri, May 6, 2011 at 9:50 PM, Grzegorz Szpetkowski
>> <gszpetkowski(at)gmail(dot)com> wrote:
>> > I have some remark about
>> >
>> > "Now it is impossible to create orders with product_no entries that do
>> > not appear in the products table."
>> >
>> > http://www.postgresql.org/docs/9.0/static/ddl-constraints.html#DDL-CONSTRAINTS-FK
>> [...]
>> >
>> > There is still possibility to add product_no (exactly NULL) value,
>> > which does not appear (cannot because of primary key nature) in
>> > products table. To get "full solution" you need create orders table as
>> >
>> > CREATE TABLE orders (
>> > ? ?order_id integer PRIMARY KEY,
>> > ? ?product_no integer REFERENCES products (product_no) NOT NULL,
>> > ? ?quantity integer
>> > );
>>
>> I don't think we should change the example, but we could probably
>> clarify the wording.
>
> Any ideas on how to clarify the wording?
Maybe something like this:
Now every product_no that appears in the orders table must also appear
in the products table. Foreign key constraints are not checked for
NULL values, so product_no may also be NULL; we could prohibit this by
declaring the column NOT NULL.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2011-09-15 11:43:59 | Re: create foreign table |
Previous Message | Heikki Linnakangas | 2011-09-14 06:36:51 | Re: primary_conninfo |