From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Arnold Somogyi <arnold(dot)somogyi(at)gmail(dot)com>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Multiply ON CONFLICT ON CONSTRAINT |
Date: | 2017-02-20 23:33:07 |
Message-ID: | 2896b8e7-60d0-0e5f-114b-d17e5a67c7fc@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 02/17/2017 04:53 PM, Arnold Somogyi wrote:
> Hi,
>
> I wonder if there is a way to add more then one ON CONSTRAINT value.
> I have many different unique constraints on my table and I would like to
> catch and handle two of them with ON CONFLICT ON CONSTRAINT. And the
> rest errors will be handled by the client application.
>
> INSERT INTO table_1 (id, name, value, user_id, description)
> VALUES (1, 'name', 'value', null, null)
> ON CONFLICT ON CONSTRAINT *table1_pkey, table1_name_key* DO UPDATE
> SET value = EXCLUDED.value, user_id = EXCLUDED.user_id, description =
> EXCLUDED.description
https://www.postgresql.org/docs/9.6/static/sql-insert.html
"where conflict_target can be one of:
( { index_column_name | ( index_expression ) } [ COLLATE collation ] [ opclass ] [, ...] ) [ WHERE index_predicate ]
ON CONSTRAINT constraint_name
"
I read that as only one constraint_name.
The question then becomes whether you want:
table1_pkey, table1_name_key
to OR or AND?
>
> Regards,
> Arnold
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Venkata B Nagothi | 2017-02-20 23:49:17 | Re: Streaming Replication Without Downtime |
Previous Message | Karsten Hilbert | 2017-02-20 21:38:04 | Re: Using xmin and xmax for optimistic locking |