применить значения последовательности к упорядоченному подмножеству записей таблицы - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть таблица "dummy" со следующими столбцами:

| id | name | position | updated_at | status |

Я хочу обновить столбец "position" со значениями из последовательности, только для записей с status = active и order descby "updated_at". Возможно ли это?

Закрытый запрос, но недействительный из-за предложения order by:

Update dummy d1 set position = nextval('positions_sequence') 
    from dummy d2 where d1.id = d2.id and d2.status = 'active' 
    order by d2.updated_at desc

1 Ответ

1 голос
/ 07 февраля 2012

Вы можете легко архивировать это с помощью сохраненного процесса, используя цикл:

FOR d1 IN SELECT * FROM dummy WHERE status = active order by updated_at desc LOOP
new_position := nextval('positions_sequence');
EXECUTE Update dummy set position = new_position where id = d1.id;
END LOOP;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...