【发布时间】:2020-01-26 03:24:53
【问题描述】:
我声明了三个变量,并为它们分配了一个整数值。
我正在尝试将整数值随机分配给 UPDATE 语句中的字段,但出现错误。
这是我要执行的语句:
FOR user_record IN (SELECT * FROM users_to_add) LOOP
UPDATE
customer."user"
SET
primary_site_id = ({site_GRO, site_WHS, site_SHR}[])[ceil(random()*3)],
WHERE
userid = (SELECT userID FROM customer.user
WHERE emailaddress=user_record.email_address);
END LOOP;
我得到:
SyntaxError: syntax error at or near "{"
如果随机选择的值是一个字符串,同样的格式也适用,但由于这些是变量,内部大括号不能用引号括起来。
【问题讨论】:
-
请始终提供您的 Postgres 版本和完整的函数 /
DO声明,以简化此操作。site_GRO、site_WHS和site_SHR应该是单独的变量还是来自customer."user"?
标签: sql arrays postgresql random plpgsql