使用sql语法中的循环更新数据

时间:2015-06-25 11:04:02

标签: postgresql

我使用postgreSQL

我想使用sql更新所有用户的电子邮件

我有一个名为user的表,其中包含500个用户, 所以我认为我应该在我的sql语法中使用循环

例如,当该表包含4个用户时,我希望这些用户的电子邮件成为:

user1@hotmail.fr
user2@hotmail.fr
user3@hotmail.fr
user4@hotmail.fr
java中的

应该是这样的

 String newValue=null;
    for(int i=0;i<list.size();i++)
    {
    newValue="user"+i+"@hotmail.fr";
    // make update
    }

我认为我应该使用 plsql语法

已更新

我尝试使用此代码时没有成功:

BEGIN

FOR r IN SELECT * from user_
    LOOP
    NEXT r;
    UPDATE user_ SET emailaddress = CONCAT('user',r,'@hotmail.fr')
    END LOOP;

END

1 个答案:

答案 0 :(得分:0)

我使用此查询解决了问题:

UPDATE user_ SET emailaddress='user' || col_serial || '@hotmail.fr' FROM 
(SELECT emailaddress, row_number() OVER ( ORDER BY createdate) AS col_serial FROM user_ ORDER BY createdate) AS t1 
WHERE user_.emailaddress=t1.emailaddress