From: | PG Bug reporting form <noreply(at)postgresql(dot)org> |
---|---|
To: | pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | boekewurm+postgres(at)gmail(dot)com |
Subject: | BUG #16767: Silent dropping of CONSTRAINT... UNIQUE |
Date: | 2020-12-08 14:17:36 |
Message-ID: | 16767-1714a2056ca516d0@postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 16767
Logged by: Matthias vd Meent
Email address: boekewurm+postgres(at)gmail(dot)com
PostgreSQL version: 12.5
Operating system: Debian Stretch (9.13)
Description:
Hi,
I've just noticed that equivalent unique constraints that are specified in
the same statement only generate one constraint; but if they are specified
in different statements they generate the correct constraints. E.g.:
CREATE TABLE test (
id bigint,
val test,
CONSTRAINT u_id UNIQUE (id),
CONSTRAINT u_id2 UNIQUE (id),
CONSTRAINT pk_id PRIMARY KEY (id),
CONSTRAINT u_val UNIQUE (val)
);
vs
CREATE TABLE test (
id bigint,
val test
);
ALTER TABLE test ADD CONSTRAINT u_id UNIQUE (id);
ALTER TABLE test ADD CONSTRAINT u_id2 UNIQUE (id);
ALTER TABLE test ADD CONSTRAINT pk_id PRIMARY KEY (id);
ALTER TABLE test ADD CONSTRAINT u_val UNIQUE (val);
The first only results in a primary key on (id), and unique(val), the second
(correctly?) generates 4 constraints on the test table.
This unexpected and undocumented behaviour also exists at least in pg10.15
and pg11.10
-Matthias
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2020-12-08 16:48:01 | Re: BUG #16767: Silent dropping of CONSTRAINT... UNIQUE |
Previous Message | Dave Page | 2020-12-08 11:09:40 | Re: [External] Re: pgadmin--pgagent---the process hang by unknow reasons |