0

我有一个简单的 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。

4

1 回答 1

1

为此,您需要一个公用表表达式

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

从 9.1 版开始提供数据修改语句

于 2013-01-24T11:32:56.980 回答