Re: summing tables

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: summing tables
Дата
Msg-id 22671.1058282096@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: summing tables  (Erik Thiele <erik@thiele-hydraulik.de>)
Список pgsql-sql
Erik Thiele <erik@thiele-hydraulik.de> writes:
> "Viorel Dragomir" <bigchief@vio.ro> wrote:
>> update table_name
>> set c = a + b + (select c from table_name as x where x.seq = seq-1)
>> where c is null;

> hmmm. the query is run row by row, isn't it?
> but it will have different results depending on the order of those rows.

No, it won't, because the SELECTs will not see the changes from the
not-yet-completed UPDATE.  The above command is almost right; it needs
to be

update table_name
set c = a + b + (select c from table_name as x where seq = table_name.seq-1)
where c is null;

because inside the sub-SELECT, unadorned "seq" will refer to the SELECT's
table.

You didn't say exactly what you wanted to do with null inputs, so that
issue may need more thought.
        regards, tom lane


В списке pgsql-sql по дате отправления:

Предыдущее
От: Jean-Luc Lachance
Дата:
Сообщение: Re: summing tables
Следующее
От: Dmitry Tkach
Дата:
Сообщение: Re: Non-Blocking Locks (i.e. Oracle NOWAIT)