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 に答える