From: | Ed Loehr <eloehr(at)austin(dot)rr(dot)com> |
---|---|
To: | Joachim Achtzehnter <joachim(at)kraut(dot)bc(dot)ca> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Revisited: Transactions, insert unique. |
Date: | 2000-04-24 17:49:09 |
Message-ID: | 39048915.E19A86F4@austin.rr.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Joachim Achtzehnter wrote:
>
> Today, in a message to pgsql-general, David Boerwinkle wrote:
> >
> > it seems like this is something that ought to be handled
> > programmatically. That is, query the table to see if the row exists,
> > then decide what you are going to do (insert or update) based on the
> > results of your query.
>
> It certainly 'can' be handled the way you describe, but to say that it
> 'ought' to be handled this way is going too far. It is common practice in
> database programming to simply try the most likely case and fall back to
> alternatives when an error is encountered. For example, if one expects 99%
> of inserts to be unique one may simply try the insert and when this fails
> because of a duplicate key error one can update instead. This is slightly
> more efficient than doing the extra query in 100% of cases.
More efficient, yes. However, given the lack of "statement-only" aborts
and the state of pg error codes (all strings, no numeric codes), the
programmatic/query check appears not only compulsory but simpler code-wise.
Regards,
Ed Loehr
From | Date | Subject | |
---|---|---|---|
Next Message | Ross J. Reedstrom | 2000-04-24 17:50:34 | Re: PGDATESTYLE |
Previous Message | gme | 2000-04-24 17:30:01 | PGDATESTYLE |