Обсуждение: BUG #16088: Multiple foreigh keys created on "ALTER TABLE" command

Поиск
Список
Период
Сортировка

BUG #16088: Multiple foreigh keys created on "ALTER TABLE" command

От
PG Bug reporting form
Дата:
The following bug has been logged on the website:

Bug reference:      16088
Logged by:          Jess Sturgeon
Email address:      jsturgeon@novetta.com
PostgreSQL version: 12.0
Operating system:   RHEL 7.7
Description:

If you run this command multiple times:

ALTER TABLE myschema.mytable ADD IF NOT EXISTS mycolumn uuid REFERENCES
myschema.mytable2(userid);

It adds the column once, but adds a duplicate FOREIGN KEY each time.  I had
over 59 keys while debugging my schema definition :)

This happens in PG11.5 and PG12 for me, both on RHEL 7.7


Re: BUG #16088: Multiple foreigh keys created on "ALTER TABLE" command

От
Tom Lane
Дата:
PG Bug reporting form <noreply@postgresql.org> writes:
> If you run this command multiple times:

> ALTER TABLE myschema.mytable ADD IF NOT EXISTS mycolumn uuid REFERENCES
> myschema.mytable2(userid);

> It adds the column once, but adds a duplicate FOREIGN KEY each time.

Yeah, this is a well known problem :-(.  The IF NOT EXISTS conditionalizes
addition of the column, but not the quasi-independent addition of the
foreign key constraint.  There's work afoot to make this behave more
intuitively, but it won't land before v13 at the earliest.

            regards, tom lane