On 09/10/10 8:07 PM, tony@xxxxxxxxxxxxxxxxxxx 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.
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general