Hi,
I was a bit surprised that the following DDL will work:
create table parent (id integer not null primary key);
create table child (id integer not null primary key, pid integer not null);
alter table child
add constraint fk_child_parent
foreign key (pid) references parent(id);
alter table child
add foreign key (pid) references parent(id);
It essentially creates the same foreign key constraint twice.
While I agree that this SQL should not have been written like this in the first place, I wonder why Postgres doesn't actively prevent this (like e.g. Oracle).
Is there a technical reason, or is it simply a matter of "no one cared enough to change this"?
Regards
Thomas