DELETING then INSERTING record with same PK in the same TRANSACTION

From: Andrew Hardy <andrew(dot)hardy(at)sabstt(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: DELETING then INSERTING record with same PK in the same TRANSACTION
Date: 2022-02-09 18:11:45
Message-ID: CAKxhU8isUe6NUs7i7dJzdVeHHoK417Sv=z7jUoHZMHbezG_VkA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

When I:

Begin a transaction
DELETE from <table> where id (PK) = <somevalue>
INSERT INTO <table> VALUES (<values - same PK>)
...
...
...
COMMIT

I get

insert into "itinerary" ("dk", "locator") values ($1, $2) - duplicate key
value violates unique constraint "itinerary_pkey"

Do I need some particular kind of settings on my transaction to be able to
delete and insert afresh in the same transaction?

In case it is relevant - the first delete will lead to cascaded deletes on
children.

Alternatively I wonder if I change the PK column value to
"<somevalue>-FORDELETION" will I be free to insert under the same original
PK value in the same transaction, then delete the FORDELETE item just
before committing or will I hit the same issue?

Thanks,

Andrew

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Brent Wood 2022-02-09 18:34:29 Re: DELETING then INSERTING record with same PK in the same TRANSACTION
Previous Message Tom Lane 2022-02-09 17:49:03 Re: Network Card Not Listening at Startup