我正在尝试通过连接另一个表(certificate_name
,first_name
和middle_name
中的3个字段来更新Postgres中名为last_name
的表中的字段。我已经尝试了几个陈述,但它们都会抛出错误;我最近的尝试如下:
update candidate_attributes ca
inner join "user" u on u.id=ca.candidate_user_id
set ca.certificate_name = concat(u.first_name, u.middle_name, u.last_name);
我收到的错误是:
内部" ....
的语法错误
我做错了什么?
答案 0 :(得分:0)
您的语法在Postgres中无效。类似于SQL Server语法。
Read the manual on UPDATE
并改为使用:
UPDATE candidate_attributes ca
SET certificate_name = concat_ws(' ', u.first_name,u.middle_name,u.last_name)
FROM "user" u
WHERE u.id = ca.candidate_user_id;
假设您希望在名称的每个部分之间留一个空格,我也会使用concat_ws()
代替concat()
。