PostgreSQL简单UPDATE错误

时间:2013-01-24 11:19:55

标签: postgresql

我有一个简单的postgresql表定义如下:

CREATE TABLE t_s (
    a integer,
    b integer
);

如果我做一个简单的更新语句UPDATE t_s SET a=1 WHERE b=1,我收到错误:

Chyba SQL:

ERROR:  syntax error at or near "SET"
LINE 1: SELECT COUNT(*) AS total FROM (UPDATE t_s SET a=1 WHERE b=1)...
                                                  ^

Ve výrazu:
SELECT COUNT(*) AS total FROM (UPDATE t_s SET a=1 WHERE b=1) AS sub

这句话有什么问题吗?我看不出有任何这个错误的原因。我使用PostgreSQL 9.1.6。

1 个答案:

答案 0 :(得分:1)

您需要common table expression

WITH cte AS (
    UPDATE t_s SET a=1 WHERE b=1 RETURNING a
)
SELECT COUNT(*) AS total FROM cte;

自版本9.1起可以使用数据修改语句