ОБНОВЛЕНИЕ с ЗАКАЗАТЬ ПО

Надо "завязать"UPDATE с участиемORDER BY, Я пытаюсь использовать курсоры, но получаю ошибку:

cursor "cursupd" doesn't specify a line,
SQL state: 24000

Код:

BEGIN;
    DECLARE cursUpd CURSOR FOR SELECT * FROM "table" WHERE "field" = 5760 AND "sequence" >= 0 AND "sequence" < 9 ORDER BY "sequence" DESC;
    UPDATE "table" SET "sequence" = "sequence" + 2 WHERE CURRENT OF cursUpd;
    CLOSE cursUpd;
COMMIT;

Как это сделать правильно?

ОБНОВЛЕНИЕ 1

Без курсора, когда я делаю так:

UPDATE "CableLinePoint" AS "t"
SET "sequence" = t."sequence" + 2
from (
    select max("sequence") "sequence", "id"
    from "CableLinePoint"
    where
        "CableLine" = 5760
    group by "id"
    ORDER BY "sequence" DESC
) "s"
where "t"."id" = "s"."id" and "t"."sequence" = "s"."sequence"

Я получаю уникальную ошибку. Таким образом, необходимо обновить с конца, а не с самого начала.

ОБНОВЛЕНИЕ 2

Таблица:

id|CableLine|sequence
10|    2    |    1
11|    2    |    2
12|    2    |    3
13|    2    |    4
14|    2    |    5

Необходимо обновить (увеличить) поле «последовательность». «sequence» имеет тип «index», поэтому нельзя сделать:

UPDATE "table" SET "sequence" = "sequence" + 1 WHERE "CableLine" = 2

Когда «последовательность» в строке сid = 10 увеличивается на1 Я получаю сообщение об ошибке, что другая строка с"sequence" = 2 уже существует.

Ответы на вопрос(1)

Ваш ответ на вопрос