TR: redundant constraint_schema

Started by Olivier Leprêtreover 7 years ago1 messageshackers
Jump to latest
#1Olivier Leprêtre
o.lepretre@gmail.com

Hi,

Please find a question that didn't get an answer in the pgsql-sql list. I
hope I'll get an answer here.

Thanks,

Olivier

De : Olivier Leprêtre [mailto:o.lepretre@gmail.com]
Envoyé : mercredi 29 août 2018 15:49
À : 'pgsql-sql@lists.postgresql.org'
Objet : redundant constraint_schema

Hi,

Can someone explain why, when a column is not created (add column if not
exists), a redundant constraint is still created from the REFERENCES part ?

I have a patching script that is supposed to add column if not existing :

ALTER TABLE myschem.table1

ADD COLUMN IF NOT EXISTS col1 VARCHAR(254) REFERENCES
myschem.table2(col2)

When col1 already exists, I expected that nothing would happen. But, when
applying the previous query and then querying :

select constraint_name from information_schema.key_column_usage where
constraint_schema='myschem'

I notice that a new constraint "table1_col2_fkeyxxx" is created each time
the previous ALTER TABLE is called (with xxx being a new number each time)

Thanks,

Olivier