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...  (Tom Lane <tgl@sss.pgh.pa.us>)
Список 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 по дате отправления:

Предыдущее
От: Michael Ansley
Дата:
Сообщение: RE: OID Perfomance - Object-Relational databases
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Something I'd like to try...