He estado jugando con el sistema de notificación de PostgreSQL y no puedo por la vida de mi figura por qué pg_notify (texto, texto) nunca funciona. Esta función no está demasiado documentada y no puedo encontrar muchos ejemplos de su uso en la naturaleza, así que pensé que a nadie le importaría que preguntara aquí.ESCUCHAR/NOTIFICAR utilizando pg_notify (texto, texto) en PostgreSQL
Ejecución de los trabajos siguientes exactamente como se esperaba:
LISTEN my_channel;
NOTIFY my_channel, 'my message text';
Uso de la función pg_notify() Sin embargo devuelve un valor nulo y sin notificación alguna vez se ha enviado. No se da error tampoco. Un ejemplo de la utilización es:
SELECT pg_notify('my_channel', 'my message text');
que podía usar el NOTIFICAR función sin embargo, mi objetivo es simplificar la notificación en una consulta de este modo:
select pg_notify(get_player_error_channel(username)::TEXT, 'test'::TEXT)
from player;
supongo que debo estar perdiendo algo ridículo, pero No he tenido suerte descubriendo el motivo de esto. La página sobre NOTIFICAR se puede encontrar aquí: http://www.postgresql.org/docs/9.0/static/sql-notify.html
En ella, se menciona esto sobre pg_notify(), lo que me hace asumir que no habría nada drásticamente diferente.
pg_notify Para enviar una notificación también se puede utilizar la función de pg_notify (texto, texto). La función toma el nombre del canal como primer argumento y la carga como el segundo. La función es mucho más fácil de usar que el comando NOTIFY si necesita trabajar con nombres de canal no constantes y cargas útiles.
Gracias como siempre por la ayuda
Edición: Versión de base de datos es: "PostgreSQL 9.0.3 en i686-pc-linux-gnu, compilado por GCC GCC (GCC) 4.2.4, 32- bit "
¿Qué versión de postgresql está usando? ¡SELECCIONE la versión()! – Daniel
¿Ingresa 'LISTEN my_channel;' 'SELECT pg_notify ('my_channel', 'my message text');' en una sesión psql no genera nada? Para mí, el resultado de pg_notify va acompañado de un mensaje de "Notificación asincrónica ...". – araqnid
Gracias araqnid, ¡esto me ayudó a asegurarme que no me estaba volviendo loco! Desafortunadamente, también me ayuda a parecer un poco estúpido. O bien. Mi respuesta esta abajo – Abstrct