From: Adrian Klaver <adrian.klaver@aklaver.com>
To: Andrus <kobruleht2@hot.ee>
To: pgsql-general@postgresql.org
Subject: Re: Duplicate key error
Date: Wed, 3 Mar 2021 12:19:37 -0800
Message-ID: <d669cc09-aa93-cdf3-5030-37318d2a9001@aklaver.com> (raw)
In-Reply-To: <abc069b9-5e92-b461-f215-68ad67a533b6@hot.ee>
References: <a8656d4f-d692-ffae-077e-304f348e25bf@hot.ee>
<5b68b4b3-b957-5009-cf3e-4bbc9dcbd0d9@aklaver.com>
<97577cda-b3fa-4edb-1c8a-2b39afad65c6@hot.ee>
<c22a9fa0-9f3a-8b68-c1d4-a430cf7286bc@aklaver.com>
<abc069b9-5e92-b461-f215-68ad67a533b6@hot.ee>
On 3/3/21 11:59 AM, Andrus wrote:
> Hi!
>>
>> And if that name already exists there would be a duplicate key error.
>
> Name cannot exist: First delete deletes its value. Tables are not
> changed by external process during transaction. As double insurance,
> insert perfoms additional existence check and adds only if key does not
> exist.
The error message:
"
duplicate key value violates unique constraint "session_pkey"
Key (workplace)=(WIN-N9BSKUNKBC8 ) already exists.
"
says something else is inserting/updating using that key value. So
obviously your script is not catching all the conflicts. At this point
your best bet is to monitor the Postgres log and see what else is
happening at the time of the error. I'm guessing you will find another
process working on that table.
>
> >Last inserted row data should remain.
>>
>> I'm not understanding the above.
>
> This table should contain last login time, user and ip address. It
> should be updated by every process on login. For this old entry is
> removed if it exists and new entry with same primary key is added.
>
> Andrus.
>
>
--
Adrian Klaver
adrian.klaver@aklaver.com
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-general@postgresql.org
Cc: adrian.klaver@aklaver.com, kobruleht2@hot.ee
Subject: Re: Duplicate key error
In-Reply-To: <d669cc09-aa93-cdf3-5030-37318d2a9001@aklaver.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox