From: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com> |
---|---|
To: | Andrew Hardy <andrew(dot)hardy(at)sabstt(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: DELETING then INSERTING record with same PK in the same TRANSACTION |
Date: | 2022-02-09 18:37:42 |
Message-ID: | fea0c101-2313-eace-9b8f-d3d293154fee@aklaver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 2/9/22 10:11 AM, Andrew Hardy wrote:
> 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"
<table> = itinerary?
What fields is unique constraint "itinerary_pkey" actually pointing at?
There should be more to the error message. Can you provide the complete
message?
>
> 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
>
>
--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2022-02-09 19:26:34 | Re: DELETING then INSERTING record with same PK in the same TRANSACTION |
Previous Message | Brent Wood | 2022-02-09 18:34:29 | Re: DELETING then INSERTING record with same PK in the same TRANSACTION |