| From: | Venelin Arnaudov <v(dot)arnaudov(at)prosyst(dot)com> |
|---|---|
| To: | Richard Huxton <dev(at)archonet(dot)com> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: Problems with bulk update |
| Date: | 2007-09-27 10:38:03 |
| Message-ID: | 46FB880B.70003@prosyst.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
I have tried this
gforge=> UPDATE data_table
gforge-> SET field2_new=(SELECT new_id FROM mapping_table WHERE
old_id= data_table.field2_old);
and
gforge-> update data_table set field2_new_=mt.new_id FROM data_table dt,
mapping_table mt WHERE dt.field2_old=mt.old_id;
but initially I got error. "ERROR: column data_table.old_brand_id does
not exist"
It took me an eternity to realize that it is because of a missing entry
in the mapping table. I have added the record and the update run correctly.
Thank you very much
Kindest regards,
Venelin Arnaudov
Richard Huxton wrote:
> Venelin Arnaudov wrote:
>> Hi
>>
>> I want to update the values of one column of a table based on the
>> matches in a second table
>
>> something like
>> update table1
>> set table1.field2_new=table2.new_id
>> from table2
>> where table1.field2_old=table2.old_id;
>
> Did you try it?
>
> http://www.postgresql.org/docs/8.2/static/sql-update.html
>
> PG has a non-standard "FROM" extension for just this purpose.
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Penchalaiah P. | 2007-09-28 10:00:25 | to restore database in schema |
| Previous Message | Richard Huxton | 2007-09-27 09:27:09 | Re: Problems with bulk update |