Re: Abort transaction on duplicate key error - Mailing list pgsql-hackers

From Christof Petig
Subject Re: Abort transaction on duplicate key error
Date
Msg-id 3BB303DD.A33E59C0@petig-baender.de
Whole thread Raw
In response to Abort transaction on duplicate key error  (Haller Christoph <ch@rodos.fzk.de>)
Responses Re: Abort transaction on duplicate key error  (Haller Christoph <ch@rodos.fzk.de>)
List pgsql-hackers
Haller Christoph wrote:

> My first message:
> In a C application I want to run several
> insert commands within a chained transaction
> (for faster execution).
> >From time to time there will be an insert command
> causing an
> ERROR:  Cannot insert a duplicate key into a unique index
>
> As a result, the whole transaction is aborted and all
> the previous inserts are lost.
> Is there any way to preserve the data
> except working with "autocommit" ?
> What I have in mind particularly is something like
> "Do not abort on duplicate key error".

Simply select by the key you want to enter. If you get 100 an insert is ok,
otherwise do an update. Oracle has a feature called 'insert or update' which
follows this strategy. There also was some talk on this list about
implementing this, but I don't remember the conclusion.

BTW: I strongly recommend staying away from autocommit. You cannot
control/know whether/when you started a new transaction.

Christof

PS: I would love to have nested transactions, too. But no time to spare ...
Perhaps somebody does this for 7.3?




pgsql-hackers by date:

Previous
From: Christof Petig
Date:
Subject: Re: [PATCHES] Problem with setlocale (found in libecpg) [accessing a
Next
From: Hannu Krosing
Date:
Subject: Re: multibyte performance