Re: Partial update on an postgres upsert violates constraint

Поиск
Список
Период
Сортировка
От Andreas Terrius
Тема Re: Partial update on an postgres upsert violates constraint
Дата
Msg-id CA+gNo8sPN5e161zcQ3jhz_t-YC2ghmYLRxHkYuW9Z0F1qo4Y8g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Partial update on an postgres upsert violates constraint  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Partial update on an postgres upsert violates constraint  (John R Pierce <pierce@hogranch.com>)
Re: Partial update on an postgres upsert violates constraint  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-general
Is there any way to check whether the row already exists before checking constraints ? I still want it to fail if it turns out to be a new row (which would violate the not null constraint), but updates the row if it already exists.

Since if that is not possible, I would need to do a query to determine whether the row exists in the database which kinda eliminates the use of upsert. (in this case, partial upsert). 



On Sun, Nov 20, 2016 at 3:57 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Adrian Klaver <adrian.klaver@aklaver.com> writes:
> ... So looks like constraints are checked before you get to the ON CONFLICT section.

Right.  ON CONFLICT is a means for dealing with duplicate-key errors in
the specified (or inferred) unique index.  It is *not* an all-purpose
error catcher.  In the case at hand, the given INSERT request fails due
to not-null constraints that are unrelated to what the ON CONFLICT clause
tests for.

                        regards, tom lane

В списке pgsql-general по дате отправления:

Предыдущее
От: Melvin Davidson
Дата:
Сообщение: Thank you
Следующее
От: azhwkd
Дата:
Сообщение: query locks up when run concurrently