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 по дате отправления: