PostgreSQL: вложенный цикл - PullRequest
       15

PostgreSQL: вложенный цикл

2 голосов
/ 22 февраля 2011

Возможно ли иметь цикл внутри другого цикла? (вложенные циклы) в postgres. Нечто похожее на ниже:

WHILE rowCounter < totalRows LOOP

    FETCH NEXT FROM retailerIdCursor INTO retailerID;

    --FOR i IN 1..8 LOOP
    --WHILE i < 8 LOOP
    LOOP
        UPDATE sales_fact
        SET retailer_id = retailerID
        WHERE sales_id = rowCounter;

        EXIT WHEN i > 8;
    END LOOP;

    rowCounter = 1+ rowCounter;

END LOOP;

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

Я не понимаю, почему вы не можете просто написать

UPDATE sales_fact
   SET retailer_id = retailerID
WHERE sales_id IN(1,2,3,4,5,6,7,8);

как предложил Фрэнк.

В зависимости от оператора, который выбирает retailerId, вам может даже не понадобиться внешний цикл.

0 голосов
/ 22 февраля 2011

Вы можете посмотреть документацию postgresql.http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html

...