Re: update vs unique index

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: update vs unique index
Дата
Msg-id 20050725165249.GA29395@alvh.no-ip.org
обсуждение исходный текст
Ответ на update vs unique index  (jacekp@poczta.wprost.pl)
Список pgsql-sql
On Mon, Jul 25, 2005 at 05:58:43AM -0700, jacekp@poczta.wprost.pl wrote:

> I can imagine why it fails. Update operates on first row, making 2 out
> of 1 and that collides with second row (which has 2 as its value
> already). However, when you look at the update efect as a whole
> uniqueness is preserved, so index schould not veto update.
> 
> My question is: is there a chance to bypass this behaviour? Something
> like controlling the order in which rows go into update. If update
> would start from last row, it would be successful for sure.

Yeah, this is a known limitation.  Usual workaround is issue two
updates instead of one,

update foo set a = -a where <condition>;
update foo set a = -a + 1 where <condition>;

The point is to move all unique keys to an unused interval and then
move them back, changed all at a time.

It'll eventually be fixed, but don't hold your breath.

-- 
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"No hay ausente sin culpa ni presente sin disculpa" (Prov. francés)


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

Предыдущее
От: jacekp@poczta.wprost.pl
Дата:
Сообщение: update vs unique index
Следующее
От: Christian Rusa
Дата:
Сообщение: Closes Match