sql - 更新表 - 关系不存在

标签 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

我收到这个错误:

Error in query: ERROR: relation "a" does not exist
LINE 1: UPDATE A

为什么?

最佳答案

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

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 ... 功能不允许您使用显式连接语法。

关于sql - 更新表 - 关系不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281445/

相关文章:

php - 两个 MySQL 服务器之间的行为差​​异(错误 1292)

postgresql - 启动h2o steam时无法连接到postgresql

mysql - 为什么企业要花大价钱购买甲骨文?

php - 如何以矩阵模式访问 MySQL 表中的值?

mysql - 如何在MySQL中填充从400000开始的新列

mysql - 使用 auto_increment 约束向现有表添加新列

mysql - 查询 "not equal"不起作用

postgresql - pg_ctl promote not suspending replication 快速

database - 我应该最大限度地分解关系数据库中的表吗?

postgresql - 具有 null 参数的 Postgresql 函数为简单的 case/when/else 生成 null