PostgreSQL - 在UPDATE查询中它是什么意思?

时间:2013-08-27 12:40:10

标签: sql postgresql

我正在开发一个项目,我看到了一个我无法理解的SQL查询。

    UPDATE 
    table1 
    SET 
    field = TRUE
    FROM 
    table2
    WHERE
    table1.field2 = ... AND
    table2.field3 = ... AND

    ...

是否意味着加入?如果是这样,它与join语句的等效查询是什么?

1 个答案:

答案 0 :(得分:2)

是的,它与SELECT ... FROM ...的工作方式相同,并允许您命名将加入查询的其他表。将其用于UPDATE ... FROM ...是postgresql扩展,不受其他数据库的广泛支持。它允许您使用基于连接到其他表计算的值来更新列。通常使用sub-select可以获得相同的结果,但是用这种方式编写可能会更难。

Postgres还支持RETURNINGUPDATE的{​​{1}}条款,这进一步模糊了INSERT之间的界限。它允许您从更新查询中获取值。这对于获取自动生成的主键ID等非常方便......

我链接的postgresql文档页面中有一些例子。