Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> writes:
> On 28 Aug 2003, Gregory Stark wrote:
>> It seems when you create a new table with the "references" syntax the
>> constraint is created with a dependency specifically on a "primary key"
>> constraint on the target table.
>> However when you alter a table to add a foreign key constraint the constraint
>> is added with a dependency on any unique index on the column -- not
>> necessarily a primary key constraint.
> Well, it shouldn't be limited to a primary key constraint (you must be
> able to reference a non-primary key unique constraint).
AFAICT the difference is not whether you create the FK constraint during
table creation or add it later (in fact, the same code is executed
either way). The difference in Greg's example is that he said
"REFERENCES test" in one case and "REFERENCES test(a)" in the other.
The first syntax is specifically a dependency on the primary key, the
second is not.
I suppose we could tweak the code to prefer a primary key when there are
multiple matching indexes, but I don't see the point. Having multiple
identical indexes is silly anyway.
regards, tom lane
In response to
pgsql-hackers by date
|Next:||From: Greg Stark||Date: 2003-08-28 18:45:22|
|Subject: Re: New array functions|
|Previous:||From: Mendola Gaetano||Date: 2003-08-28 18:36:07|
|Subject: Re: Code review|