| From: | John R Pierce <pierce(at)hogranch(dot)com> |
|---|---|
| To: | tony(at)exquisiteimages(dot)com |
| Cc: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: SQL Programming Question |
| Date: | 2010-09-11 04:14:33 |
| Message-ID: | 4C8B0229.6050906@hogranch.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 09/10/10 8:07 PM, tony(at)exquisiteimages(dot)com wrote:
> Coming from 25 years of programming applications based on dBASE and FoxPro
> tables, I have a question about how to deal with a programming task.
>
> I have a situation where I receive a file with transactions that have a
> unique key from a vendor. These transactions should only be imported into
> my system once, but the vendor system will occasionally resend a
> transaction by mistake.
>
> The way I am currently handling this with Micorosft ADO and FoxPro files
> is to open a table with an index on the vendor key and seek on the key. If
> there is no match I add it, if there is a match I put it in an exception
> file to be manually checked.
>
> Using PostgreSQL I can't open a table and do seeks against an index. I
> could do a select against the database and see if 0 records are returned,
> but that seems to take more time than doing a seek on an index. Is there a
> more SQL friendly way of handling this task?
>
>
the table should have a UNIQUE constraint on that primary key field.
use a transaction.
go to insert the data.
if you get a constraint violation, roll back the transaction, then
insert it into your exceptions table.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | 夏武 | 2010-09-11 06:21:31 | Help! pg_dump: Error message from server: ERROR: cache lookup failed for type 19 |
| Previous Message | Scott Bailey | 2010-09-11 04:10:04 | Re: SQL Programming Question |