From: | Igor Neyman <ineyman(at)perceptron(dot)com> |
---|---|
To: | Pawel Veselov <pawel(dot)veselov(at)gmail(dot)com>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Help with slow table update |
Date: | 2015-04-15 14:14:10 |
Message-ID: | A76B25F2823E954C9E45E32FA49D70ECCD415423@mail.corp.perceptron.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
From: pgsql-general-owner(at)postgresql(dot)org [mailto:pgsql-general-owner(at)postgresql(dot)org] On Behalf Of Pawel Veselov
Sent: Tuesday, April 14, 2015 8:01 PM
To: Jim Nasby
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: [GENERAL] Help with slow table update
[skipped]
This is where using sets becomes really tedious, as Postgres severely lacks an upsert-like statement.
I don't think there are joins allowed in UPDATE statement, so I will need to use WITH query, right?
Also, I'm not sure how LEFT JOIN will help me isolate and insert "missed" entries...
Would it be OK to replace upsert part with merging into a temp table, then deleting and inserting from temp table? Is there any penalty for insert/delete comparing to update?
[skipped]
Yes, you can do UPDATE with joins (http://www.postgresql.org/docs/9.4/static/sql-update.html) like this:
UPDATE table1 A SET col1 = B.col2
FROM table2 B
WHERE A.col3 = B.col4;
Regards,
Igor Neyman
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Joseph Krogh | 2015-04-15 14:22:16 | Re: How to keep pg_largeobject from growing endlessly |
Previous Message | Adam Hooper | 2015-04-15 14:05:22 | Re: How to keep pg_largeobject from growing endlessly |