Thread: SQL - update table problem...
Hi, i'm trying to make update on multiple tables but don't know how. is something like this posible with postgresql? update table1 join table2 on (table1.id=table2.t1) join table3 on (table2.id=table3.t2) set table1.name='test', table2.sum=table1.x+table2.y, table3.cell='123456789' where table1.id=6 i know that this syntax is not supported with postgres but i tried to rewrite the code using this synopsis: UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...] [ FROM fromlist ] [ WHERE condition ] i failed again. updating multiple tables, can it be done? thanks for help _________________________________________________________________ FREE pop-up blocking with the new MSN Toolbar - get it now! http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
Hi! According to the synopsis of UPDATE you just can update one table at a time. Just use more UPDATE commands inside a transaction. -- Matthias > -----Original Message----- > From: pgsql-general-owner@postgresql.org > [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Marko Rihtar > Sent: Monday, November 13, 2006 2:21 PM > To: pgsql-general@postgresql.org > Subject: [GENERAL] SQL - update table problem... > > > Hi, > > i'm trying to make update on multiple tables but don't know how. > is something like this posible with postgresql? > > update table1 > join table2 on (table1.id=table2.t1) > join table3 on (table2.id=table3.t2) > set table1.name='test', table2.sum=table1.x+table2.y, > table3.cell='123456789' > where table1.id=6 > > i know that this syntax is not supported with postgres but i tried to > rewrite the code using this synopsis: > > UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...] > [ FROM fromlist ] > [ WHERE condition ] > > i failed again. > updating multiple tables, can it be done? > > thanks for help > > _________________________________________________________________ > FREE pop-up blocking with the new MSN Toolbar - get it now! > http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/ > > > ---------------------------(end of > broadcast)--------------------------- > TIP 4: Have you searched our list archives? > http://archives.postgresql.org/
Marko Rihtar wrote: > Hi, > > i'm trying to make update on multiple tables but don't know how. > is something like this posible with postgresql? > > update table1 > join table2 on (table1.id=table2.t1) > join table3 on (table2.id=table3.t2) > set table1.name='test', table2.sum=table1.x+table2.y, > table3.cell='123456789' > where table1.id=6 I don't know of an SQL variant to handle this case. Usually people are trying to update a single table based on joining to several others. In your case you'll have to issue three update statements wrapped in a transaction. -- Richard Huxton Archonet Ltd
You can try using a combination of a view and rule attached to it for achieving the same...
Thanks,
-------
Shoaib Mir
EnterpriseDB (www.enterprisedb.com)
Thanks,
-------
Shoaib Mir
EnterpriseDB (www.enterprisedb.com)
On 11/13/06, Richard Huxton <dev@archonet.com> wrote:
Marko Rihtar wrote:
> Hi,
>
> i'm trying to make update on multiple tables but don't know how.
> is something like this posible with postgresql?
>
> update table1
> join table2 on ( table1.id=table2.t1)
> join table3 on (table2.id=table3.t2)
> set table1.name='test', table2.sum=table1.x+table2.y,
> table3.cell='123456789'
> where table1.id=6
I don't know of an SQL variant to handle this case. Usually people are
trying to update a single table based on joining to several others.
In your case you'll have to issue three update statements wrapped in a
transaction.
--
Richard Huxton
Archonet Ltd
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings