2016-02-01 57 views
0

我目前正在做一个巨大的手动工作,我可以用一个简单的for循环来解决。For循环postgreSQL似乎不能正常工作

这里是我的查询:

FOR i IN 317..349 LOOP 
    update ville 
    set ville.id_de = i from ville, departement where ville.nom_dep_vi = departement.nom_de AND i = departement.id_de; 
END LOOP; 

下面是官方PostgreSQL的语法:

FOR i IN 1..10 LOOP 
-- i will take on the values 1,2,3,4,5,6,7,8,9,10 within the loop 
END LOOP; 

我总是得到一个错误说“查询失败 PostgreSQL的说:语法错误或接近”我“”。如果任何人都可以帮助,将不胜感激。

+2

请出示完整的PL/pgSQL函数。但是,无论如何您都不需要循环,这可以使用单个更新语句来完成。另外,你应该不要重复在update语句的'from'子句中更新的表。 –

回答

0

没有必要为一个循环,只需使用一个单一的更新语句:

update ville 
    set ville.id_de = departement.id_de 
from departement -- do NOT repeat ville here! 
where ville.nom_dep_vi = departement.nom_de 
    AND departement.id_de between 317 and 349 
+0

谢谢!有效 !对于低级别的编程,我很抱歉,我是postgreSQL的初学者 – Julien