LINUX.ORG.RU

История изменений

Исправление WinLin2, (текущая версия) :

В PostgreSQL нельзя использовать ROW_NUMBER() в UPDATE.

UPDATE workunit SET numberorder =
(SELECT 100*ROW_NUMBER() OVER ()
FROM workunit w2
WHERE workunit.id = w2.id
ORDER BY w2.numberorder);

Присваивает всем записям numberorder = 100. В чем ошибка?

Исходная версия WinLin2, :

В PostgreSQL нельзя использовать ROW_NUMBER() в UPDATE.

UPDATE workunit SET numberorder =
(SELECT 100*ROW_NUMBER() OVER ()
FROM workunit w2
WHERE workunit.id = w2.id
ORDER BY w2.numberorder);

Присваивает всем записям numberorder = 100.