Re: Another weird one with an UPDATE

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Another weird one with an UPDATE
Дата
Msg-id 20031011153251.F57866@megazone.bigpanda.com
обсуждение исходный текст
Ответ на Re: Another weird one with an UPDATE  (David Griffiths <dgriffiths@boats.com>)
Список pgsql-performance
On Sat, 11 Oct 2003, David Griffiths wrote:

> Sorry - just found the FAQ (
> http://jamesthornton.com/postgres/FAQ/faq-english.html#4.22
> <http://jamesthornton.com/postgres/FAQ/faq-english.html#4.22> ) on how
> IN is very slow.
>
> So I rewrote the query:
>
> \o ./data/temp.txt
> SELECT current_timestamp;
> UPDATE user_account SET last_name = 'abc'
> WHERE EXISTS (SELECT ua.user_account_id FROM user_account ua,
> commercial_entity ce, commercial_service cs
> WHERE ua.user_account_id = ce.user_account_id AND
> ce.commercial_entity_id = cs.commercial_entity_id);
> SELECT current_timestamp;

I don't think that's the query you want.  You're not binding the subselect
to the outer values of user_account.

I think you want something like:
UPDATE user_account SET last_name = 'abc'
 WHERE EXISTS (SELECT 1 FROM commercial_entity ce, commercial_service cs
 WHERE user_account.user_account_id = ce.user_account_id AND
 ce.commercial_entity_id = cs.commercial_entity_id);

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

Предыдущее
От: David Griffiths
Дата:
Сообщение: Re: Another weird one with an UPDATE
Следующее
От: Christopher Kings-Lynne
Дата:
Сообщение: Re: go for a script! / ex: PostgreSQL vs. MySQL