Thread: 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>: > 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. >
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
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. +