Re: Can COPY update or skip existing records? - Mailing list pgsql-sql

From Tony Wasson
Subject Re: Can COPY update or skip existing records?
Date
Msg-id 6d8daee30810010933r1dba9b41uda6d9e04a0ccf05f@mail.gmail.com
Whole thread Raw
In response to Can COPY update or skip existing records?  ("Glenn Gillen" <glenn.gillen@gmail.com>)
List pgsql-sql
On Tue, Sep 30, 2008 at 5:16 AM, Glenn Gillen <glenn.gillen@gmail.com> wrote:
> Hey all,
>
> I've got a table with a unique constraint across a few fields which I
> need to regularly import a batch of data into. Is there a way to do it
> with COPY without getting conflicts on the unique contraint? I have no
> was of being certain that some of the data I'm trying to load isn't in
> the table already.
>
> Ideally I'd like it to operate like MySQL's on_duplicate_key_update
> option, but for now I'll suffice with just ignoring existing rows and
> proceeding with everything else.

I ran into a similar problem. I'm using these merge_by_key functions:

http://pgfoundry.org/projects/mbk

Here's a quick example...

CREATE TEMP TABLE foo (LIKE dst INCLUDING DEFAULTS);

COPY foo (c1, c2) FROM STDIN;
(your copy data here)
\.

SELECT * FROM merge_by_key(       'public', -- table schema       'dst', -- table name       'mnew.c2 < mold.c2', --
mergecondition       'select c1,c2 FROM foo'
 
);

Disclaimer: The author is a friend of mine. :-)


pgsql-sql by date:

Previous
From: Tom Lane
Date:
Subject: Re: Accessing elements of bytea[] always returns NULL
Next
From: Montaseri
Date:
Subject: Query how-to