Hi!

Sometimes duplicate key error

    duplicate key value violates unique constraint "session_pkey"
    Key (workplace)=(WIN-N9BSKUNKBC8 ) already exists.

occurs in script:

    delete from session where workplace='WIN-N9BSKUNKBC8' ;
    INSERT INTO session (workplace,ipaddress,logintime,loggeduser)
    SELECT 'WIN-N9BSKUNKBC8' , inet_client_addr()::CHAR(14),current_timestamp::CHAR(28),CURRENT_USER WHERE NOT EXISTS (SELECT 1 FROM session WHERE workplace='WIN-N9BSKUNKBC8' )

Sript is running form windows task scheduler on every 10 minutes. Error occurs only sometimes.

How to fix this ?
Table is defined as

    CREATE TABLE public.session
    (
        loggeduser character(10) ,
        workplace character(16) NOT NULL,
        ipaddress character(20) ,
        logintime character(28) ,
        activity timestamp with time zone,
        CONSTRAINT session_pkey PRIMARY KEY (workplace)
    )


Environment:

    PostgreSQL 13.1, compiled by Visual C++ build 1914, 64-bit
    Windows server 2019
    psqlODBC driver 13.00.0000


I already asked this in this list many years ago. In this case Tom replies that is looks like index race condition bug which was fixed in later Postgres 9 version.

However this issue still exists in Postgres 13.1

Andrus.

Reply via email to