2013-06-14 4 views
0

Я новичок в PostgreSQL; Раньше я работал с Toad для Oracle. Я запускаю следующий код и не могу заставить его работать.PostgreSQL -Loop с запросом - ошибка

begin 
for prueba in 
(select * from a_userid) 
loop 
update a_userid set user_id2 = nextval('seq_userid') 
where user_id = prueba.user_id; 
commit; 
end loop; 
end; 

Ошибка:

************ Error ********** 
ERROR: error de sintaxis en o cerca de «for» 
SQL state: 42601 
Character: 9 

С Oracle он привык работать таким образом. Я не знаю, где проблема. Я также пробовал использовать:

LANGUAGE 'plpgsql'; 

в конце ... но это совсем не изменилось.

ответ

1

Если я правильно понимаю, чего вы пытаетесь достичь, вам не нужен цикл для этого. Простой UPDATE сделает это

UPDATE a_userid 
    SET user_id = nextval('seq_userid'); 

Вот SQLFiddle демо

+0

благодаря peterm! –

Смежные вопросы