From: | Jasen Betts <jasen(at)xnet(dot)co(dot)nz> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Updating one table with data from another |
Date: | 2009-08-20 10:51:13 |
Message-ID: | h6j9r1$7fc$1@reversiblemaps.ath.cx |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 2009-08-18, drew <iamdrewhayes(at)gmail(dot)com> wrote:
> Hey all,
> There are two things I need to do:
> 1. Update existing rows with new data
> 2. Append new rows
>
> I need to update only some of the fields table1 with data from
> table2. These tables have the exact same fields.
>
> So here's what I have currently for appending new rows (rows where CID
> does not currently exist in table1, but have been added to table2):
> INSERT INTO table1 (field1, field2, ...)
> SELECT field1, field2, ...
> FROM table2
> WHERE NOT EXISTS (SELECT CID FROM table1);
>
>
> But something is wrong with the logic there and I'm not quite getting
> it.
the where clause is wrong.
WHERE NOT EXISTS (SELECT 1 FROM table1 where table1.cid=table2.cid);
or
WHERE NOT cid IN (SELECT CID FROM table1);
From | Date | Subject | |
---|---|---|---|
Next Message | George Woodring | 2009-08-20 12:07:15 | Advice returning data as an array |
Previous Message | ramasubramanian | 2009-08-20 04:29:20 | Re: Call Procedure From Trigger Function |