我使用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
答案 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