我正在尝试此查询,但无法正常工作: 这个想法是将数据从一个表复制到另一个表。
UPDATE A
SET A.name_en = B.name
FROM country_name as A
INNER JOIN country as B
ON A.id = B.id
我收到此错误:
Error in query: ERROR: relation "a" does not exist
LINE 1: UPDATE A
为什么?
答案 0 :(得分:4)
你根本不需要额外的加入。您正在执行inner join
,因此您只需使用from
和where
条款即可:
UPDATE country_name
SET name_en = B.name
FROM country AS B
WHERE counry_name.id = B.id;
您需要执行UPDATE sometable ... FROM sometable a ... WHERE sometable.id = a.id
技巧的唯一时间是需要对正在更新的表进行外连接。
令人遗憾的是,PostgreSQL的UPDATE ... FROM ...
功能并不允许您使用显式连接语法。
答案 1 :(得分:1)
我认为您需要编写表的真实名称,因为操作将在查询本身之外进行。因此,协会将结束。
UPDATE country_name
SET A.name_en = B.name
FROM country_name as A
INNER JOIN country as B
ON A.id = B.id
WHERE A.id = B.id;
从另一个人的答案中获取答案,以确保您的数据库不会出错。