2016-07-25 14 views
1

私は次のエラーを取得する:PERFORM pg_notify( ''、 '')の実行方法は?私は<code>PERFORM pg_notify('channel', 'payload');</code>を実行すると

ERROR: syntax error at or near "PERFORM" 
LINE 1: PERFORM pg_notify('channel', 'payload'); 
     ^

は私が間違って何をしているのですか?

対応するのはSELECTですが、私は同等の結果は得られません。私はpsql (9.5.3, server 9.5.0)を使用しています。

+0

さらに外側のコードを共有できますか? – Nicarus

+0

外部コードはありません。 'psql'でこの行を直接実行しています。 – Mehran

+0

'PERFORM'で動作している' pg_notify() 'の言及が見つかりませんし、動作させることもできません。 – Nicarus

答えて

1

ここでの問題は、PERFORMがプロンプト内で直接実行できないという事実に依存しています。 documentationが言うように:

Sometimes it is useful to evaluate an expression or SELECT query but discard the result, for example when calling a function that has side-effects but no useful result value. To do this in PL/pgSQL, use the PERFORM statement:

それは少しトリッキーだけどPERFORMのみPL/pgSQLのコンテキスト(関数、ストアドプロシージャやもの)で使用することができます。私はサポートされていないプロンプトで直接実行しようとしていました。