ALTER TABLE doc small thing

Started by Grzegorz Szpetkowskialmost 15 years ago4 messagesdocs
Jump to latest
#1Grzegorz Szpetkowski
gszpetkowski@gmail.com

http://www.postgresql.org/docs/9.0/static/sql-altertable.html

"To add a foreign key constraint to a table:

ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address)
REFERENCES addresses (address) MATCH FULL;"

This looks confusing to me. Is "MATCH FULL" works with non-composite
(one adress column) foreign keys at all ?

Regards,
G. Sz.

#2Grzegorz Szpetkowski
gszpetkowski@gmail.com
In reply to: Grzegorz Szpetkowski (#1)
Re: ALTER TABLE doc small thing

"NOTE 30 — If MATCH FULL or MATCH PARTIAL is specified for a
referential constraint and if the referencing table has only one
column specified in <referential constraint definition> for that
referential constraint, or if the referencing table has more than one
specified column for that <referential constraint definition>, but
none of those columns is nullable, then the effect is the same as if
no
<match type> were specified."

I found that in SQL:2003 draft, so in above case MATCH FULL is
syntactically ok, but rather confusing and effectively do nothing
(maybe just impression purpose).

Regards,
G. Sz.

2011/5/9 Grzegorz Szpetkowski <gszpetkowski@gmail.com>:

Show quoted text

http://www.postgresql.org/docs/9.0/static/sql-altertable.html

"To add a foreign key constraint to a table:

ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address)
REFERENCES addresses (address) MATCH FULL;"

This looks confusing to me. Is "MATCH FULL" works with non-composite
(one adress column) foreign keys at all ?

Regards,
G. Sz.

#3Robert Haas
robertmhaas@gmail.com
In reply to: Grzegorz Szpetkowski (#2)
Re: ALTER TABLE doc small thing

On Mon, May 9, 2011 at 2:12 PM, Grzegorz Szpetkowski
<gszpetkowski@gmail.com> wrote:

"NOTE 30 — If MATCH FULL or MATCH PARTIAL is specified for a
referential constraint and if the referencing table has only one
column specified in <referential constraint definition> for that
referential constraint, or if the referencing table has more than one
specified column for that <referential constraint definition>, but
none of those columns is nullable, then the effect is the same as if
no
<match type> were specified."

I found that in SQL:2003 draft, so in above case MATCH FULL is
syntactically ok, but rather confusing and effectively do nothing
(maybe just impression purpose).

I guess we could remove it, but I don't think it's really doing any harm.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

#4Bruce Momjian
bruce@momjian.us
In reply to: Robert Haas (#3)
Re: ALTER TABLE doc small thing

Robert Haas wrote:

On Mon, May 9, 2011 at 2:12 PM, Grzegorz Szpetkowski
<gszpetkowski@gmail.com> wrote:

"NOTE 30 ? If MATCH FULL or MATCH PARTIAL is specified for a
referential constraint and if the referencing table has only one
column specified in <referential constraint definition> for that
referential constraint, or if the referencing table has more than one
specified column for that <referential constraint definition>, but
none of those columns is nullable, then the effect is the same as if
no
<match type> were specified."

I found that in SQL:2003 draft, so in above case MATCH FULL is
syntactically ok, but rather confusing and effectively do nothing
(maybe just impression purpose).

I guess we could remove it, but I don't think it's really doing any harm.

I find the MATCH FULL makes the example less real-world accurate, so I
removed the specification from the example.

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ It's impossible for everything to be true. +