Thread: BUG #16088: Multiple foreigh keys created on "ALTER TABLE" command
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
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