我有一个简单的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。
答案 0 :(得分:1)
WITH cte AS (
UPDATE t_s SET a=1 WHERE b=1 RETURNING a
)
SELECT COUNT(*) AS total FROM cte;
自版本9.1起可以使用数据修改语句