Re: Abort transaction on duplicate key error

From: Christof Petig <christof(at)petig-baender(dot)de>
To: Haller Christoph <ch(at)rodos(dot)fzk(dot)de>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Abort transaction on duplicate key error
Date: 2001-09-27 10:47:58
Message-ID: 3BB303DD.A33E59C0@petig-baender.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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?

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Haller Christoph 2001-09-27 11:27:09 Abort transaction on duplicate key error
Previous Message Christof Petig 2001-09-27 10:17:31 Re: [PATCHES] Problem with setlocale (found in libecpg) [accessing a