2013-01-24 53 views
0

我有一個簡單的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。

+0

你的錯誤信息表明你是** **不運行'UPDATE'你自稱正在運行。 –

回答

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版本