2016-07-25 1 views
1

Quand j'exécute PERFORM pg_notify('channel', 'payload'); je reçois l'erreur suivante:Comment exécuter PERFORM pg_notify ('', '')?

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

Qu'est-ce que je fais mal?

La contrepartie SELECT fonctionne, mais je cherche un équivalent sans résultat. Et j'utilise psql (9.5.3, server 9.5.0).

+0

Pouvez-vous partager un peu plus du code externe? – Nicarus

+0

Il n'y a pas de code externe. J'exécute cette ligne directement dans 'psql'. – Mehran

+0

Je ne trouve aucune mention de 'pg_notify()' travaillant avec 'PERFORM' et je n'arrive pas non plus à le faire fonctionner. – Nicarus

Répondre

1

Le problème ici repose sur le fait que PERFORM ne peut pas être exécuté directement dans l'invite. Comme le dit 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:

Il est un peu difficile, mais PERFORM ne peut être utilisé dans un contexte PL/pgSQL (fonctions, procédures stockées et d'autres choses). Et j'essayais de l'exécuter directement dans l'invite qui n'est pas supportée.