Updating one table with data from another

From: drew <iamdrewhayes(at)gmail(dot)com>
To: pgsql-sql(at)postgresql(dot)org
Subject: Updating one table with data from another
Date: 2009-08-18 21:02:02
Message-ID: a90cab78-877d-4f88-a3a4-0e569b3f55ef@z31g2000yqd.googlegroups.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

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.

For the update part, here's what I have:
UPDATE table1
SET field1 = table2.field1
field2 = table2.field2,
...,
FROM table1 INNER JOIN table2 ON table1.CID=table2.CID;

I'm not sure what's wrong with this one either.
Any help would be greatly appreciated!

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Kevin Grittner 2009-08-18 21:59:22 Re: SQL Query Performance - what gives?
Previous Message Karl Denninger 2009-08-18 20:58:46 Re: SQL Query Performance - what gives?