Re: update table from a csv file - Mailing list pgsql-general

From Adrian Klaver
Subject Re: update table from a csv file
Date
Msg-id 50DC7D99.40207@gmail.com
Whole thread Raw
In response to Re: update table from a csv file  (Kirk Wythers <kirk.wythers@gmail.com>)
List pgsql-general
On 12/27/2012 08:50 AM, Kirk Wythers wrote:
>
> On Dec 27, 2012, at 10:39 AM, Adrian Klaver <adrian.klaver@gmail.com
> <mailto:adrian.klaver@gmail.com>> wrote:
>
>> No. Some questions though.
>
> Thanks for the reply Adrian.
>
>>
>> What version pf Postgres?
>
> 9.1
>
>> Is that the actual UPDATE statement, I see no SET?
>
> I was reading the docs but obviously don't understand the syntax of the
> update statement.
>
>> Have you tried it?
>> If so and it failed what was the error?
>
> Yes and I got an error at or near from. Like this:
>
> b4warmed3=# UPDATE sixty_min FROM tmp_60 WHERE sixty_min.rowid =
> tmp_60.rowid;
> ERROR:  syntax error at or near "FROM"
> LINE 1: UPDATE sixty_min FROM tmp_60 WHERE sixty_min.rowid = tmp_60....
>                           ^
> b4warmed3=#

It is not enough to match the rows through "sixty_min.rowid = tmp_60."
You also need to match the columns using SET.
Per the examples at the bottom of:

http://www.postgresql.org/docs/9.2/interactive/sql-update.html

UPDATE employees SET sales_count = sales_count + 1 FROM accounts
   WHERE accounts.name = 'Acme Corporation'
   AND employees.id = accounts.sales_person;

For many columns it is easier to use the other form of SET. Example from
docs:

UPDATE weather SET (temp_lo, temp_hi, prcp) = (temp_lo+1, temp_lo+15,
DEFAULT)


>


--
Adrian Klaver
adrian.klaver@gmail.com


pgsql-general by date:

Previous
From: Kirk Wythers
Date:
Subject: Re: update table from a csv file
Next
From: Mark Morgan Lloyd
Date:
Subject: libpq thread safety