Re: Something I'd like to try...
От | Barry Lind |
---|---|
Тема | Re: Something I'd like to try... |
Дата | |
Msg-id | 39DA19AA.9C87067A@xythos.com обсуждение исходный текст |
Ответ на | Re: Something I'd like to try... (Bruce Momjian <pgman@candle.pha.pa.us>) |
Ответы |
Re: Something I'd like to try...
|
Список | pgsql-sql |
It is interesting that this should come up now. Just last week I was trying to port a SQL statement from Oracle to Postgresql that used table aliases in an update statement. While I can see that this functionality wouldn't be used very often it can be very useful under certain circumstances. I have a table that stores a hierarchy. Sometimes in an update I want to join back to the same table to get other information related to children or parent rows. In Oracle I can do this using the alias, but in Postgresql I cannot. Consider the SQL statements below as simplistic examples of what I was doing in Oracle: table_foo foo_id int parent_foo_id int column_a int column_b int update table_foo f1 set column_a = (select sum(column_a) from table_foo f2 where f2.parent_foo_id = f1.foo_id); update table_foo f1 set column_b = 1 where exists (select column_a from table_foo f2 where f2.parent_foo_id = f1.foo_id); thanks, --Barry Tom Lane wrote: > > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Can someone comment on this? > >> > >> I just noticed that postgres doesn't totally support > >> column aliases on UPDATE statements, for example > > The SQL92 spec very clearly does not allow an alias on the target table: > > 13.10 <update statement: searched> > > <update statement: searched> ::= > UPDATE <table name> > SET <set clause list> > [ WHERE <search condition> ] > > While I'm willing to consider variations from the spec that add > significant functionality, this proposed addition adds no functionality > worth noticing. It'd just be another way to trip yourself up when > moving across DBMSes. > > regards, tom lane
В списке pgsql-sql по дате отправления: