更新表 - 关系不存在

use*_*084 4 sql postgresql

我正在尝试这个查询,但是不起作用:这个想法是将数据从一个表复制到另一个表。

UPDATE  A
SET     A.name_en = B.name
FROM    country_name as A
        INNER JOIN country as B
            ON A.id = B.id
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error in query: ERROR: relation "a" does not exist
LINE 1: UPDATE A
Run Code Online (Sandbox Code Playgroud)

为什么?

Cra*_*ger 5

您根本不需要额外的连接。你正在做一个,inner join所以你可以用fromandwhere子句来代替:

UPDATE  country_name
SET     name_en = B.name
FROM    country AS B
WHERE   counry_name.id = B.id;
Run Code Online (Sandbox Code Playgroud)

唯一需要做的事情UPDATE sometable ... FROM sometable a ... WHERE sometable.id = a.id是当您需要对正在更新的表进行外连接时。

不幸的是,PostgreSQL 的UPDATE ... FROM ...特性不允许您使用显式连接语法。