| From: | Alexey Dokuchaev <danfe(at)nsu(dot)ru> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Catching unique_violation exception on specific column/index |
| Date: | 2018-06-11 10:41:38 |
| Message-ID: | 20180611104138.GA43920@regency.nsu.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On Mon, Jun 11, 2018 at 05:10:33PM +0700, Alexey Dokuchaev wrote:
> The usual approach ("EXCEPTION WHEN unique_violation THEN ... END") does
> not really cut it because I want to catch unique_violation only when it
> happens on "foo_key", and still rightfully complain on others. However,
> there is no "EXCEPTION WHEN unique_violation ON (foo_key)" or something.
> Is there a way to do this without using triggers and in a less ugly way
> than the code below?
Oh, I completely forgot about rules:
CREATE OR REPLACE RULE ignore_duplicate_foo AS
ON INSERT TO table_bar WHERE EXISTS (
SELECT 1 FROM table_bar WHERE foo = NEW.foo)
DO INSTEAD NOTHING;
Sorry for the noise.
./danfe
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andreas Kretschmer | 2018-06-11 10:54:22 | Re: Catching unique_violation exception on specific column/index |
| Previous Message | Thomas Kellerer | 2018-06-11 10:30:13 | Re: Catching unique_violation exception on specific column/index |