¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

NOTIFY

名前

NOTIFY -- ���Τ���������

概要

NOTIFY channel [ , payload ]

����

NOTIFY���ޥ�ɤϡ����ߤΥǡ����١�����ǻ����ˤ��λ������ͥ�̾�ˤĤ���LISTEN channel���ޥ�ɤ�¹Ԥ������饤����ȥ��ץꥱ�������˾�ά��ǽ��"�ڥ�������"��������Υ��٥�Ȥ�����ޤ���

NOTIFY��Ʊ���PostgreSQL�ǡ����١����˥�����������ץ������ν�����Ф���ñ��ʥץ��������̿��λ��Ȥߤ��󶡤��ޤ��� ���Τκݤ˥ڥ�������ʸ������������뤳�Ȥ��Ǥ��ޤ��� �ޤ����ǡ����١�����Υơ��֥����Ѥ������μԤ����1�Ĥޤ���ʣ���Ρ˥ꥹ�ʤ��ɲ�Ū�ʥǡ������Ϥ����Ȥˤ�ꡢ��¤�����줿�ǡ������Ϥ����٤ʻ��Ȥߤ��ۤ��뤳�Ȥ��Ǥ��ޤ���

���Υ��٥�ȤȤ��ƥ��饤����Ȥ��Ϥ�������ˤϡ����Υ���ͥ�̾�����Τ�Ԥ����å����Υ����Хץ�������PID���ڥ�������ʸ����(���ꤵ��Ƥ��ʤ���ж�ʸ����)���ޤޤ�ޤ���

Ϳ����줿�ǡ����١����ˤ����ƻ��Ѥ�������Υ���ͥ�̾�Ȥ��ΰ�̣�ˤĤ��Ƥ�����ϡ��ǡ����١����߷׼Ԥ�Ǥ����Ƥ��ޤ��� ���Υ���ͥ�̾�ˤϡ��ǡ����١�����Υơ��֥�̾��Ʊ����Τ���Ѥ���Τ�����Ū�Ǥ��� ���Υ��٥�Ȥϴ���Ū��"��Ϥ��Υơ��֥���ѹ����ޤ������ѹ����줿�ս���ǧ���Ƥ�������"�Ȥ������Ȥ��̣�����ΤǤ��� ��������NOTIFY���ޥ�ɤ�LISTEN���ޥ�ɤǤϡ����Τ褦�ʴ�Ϣ�դ��϶�������Ƥ��ޤ��� �㤨�С��ǡ����١����߷׼Ԥϡ�1�ĤΥơ��֥���Ф���ۤʤ������ѹ������Τ��뤿��ˡ�ʣ���ΰۤʤ����Υ���ͥ�̾����Ѥ��뤳�Ȥ��Ǥ��ޤ��� ¾����ˡ�Ȥ��ƥڥ�������ʸ�������Ѥ��ƳƼ��͡��ʾ������б������뤳�Ȥ�Ǥ��ޤ���

����Υơ��֥뤬�ѹ����줿���Ȥ����Τ��뤿���NOTIFY����Ѥ����硢NOTIFY��ơ��֥빹������ȯ�Ԥ����롼��������֤���������Ǥ��� ���ξ�硢���Τϥơ��֥뤬�ѹ����줿���˼�ưŪ�˹Ԥ���Τǡ����ץꥱ�������ץ�����ޤ����Τμ¹Ԥ�˺���Ȥ��ä����Τ��ɤ����Ȥ��Ǥ��ޤ���

NOTIFY��SQL�ȥ�󥶥������δ֤ˤϡ������Ĥ��ν��פ���ߺ��Ѥ�����ޤ��� �ޤ���NOTIFY���ȥ�󥶥�����������Ǽ¹Ԥ��줿��硢���Υ��٥�Ȥϥȥ�󥶥�����󤬥��ߥåȤ���ʤ��¤���������ޤ��� �ȥ�󥶥�����󤬥��ܡ��Ȥ��줿��硢NOTIFY�����Ǥʤ������Υȥ�󥶥��������ǹԤ�줿���ޥ�ɤ�����̵���������Τǡ�����������Ȥ����ޤ��� �����������Υ��٥�Ȥ�¨�¤���������뤳�Ȥ���Ԥ��Ƥ�����硢���Ǥ��뤫�⤷��ޤ��� ���ˡ��ƻ���Υ��å���󤬥ȥ�󥶥���������������ο���������ä���硢���Υȥ�󥶥�����󤬡ʥ��ߥåȤ⤷���ϥ��ܡ��Ȥ���ơ˴�λ����ޤǡ����Υ��٥�Ȥ���³���Ƥ��륯�饤����Ȥ���������ޤ��� ������ͳ��Ʊ���Ǥ����ȥ�󥶥����������Τ��������줿��ˤ��Υȥ�󥶥�����󤬥��ܡ��Ȥ��줿��硢���Ȥ��������Τ���ä������ʤ�ޤ����������ФϤ��ä��󥯥饤����Ȥ������������Τ�"����᤹"���ȤϤǤ��ޤ��� �������äơ����Υ��٥�Ȥϥȥ�󥶥������ȥȥ�󥶥������ι�֤ˤΤ���������ޤ��� ���η�̡��»��֥�٥�ǥ����ʥ��������뤿�ᡢNOTIFY����Ѥ��륢�ץꥱ�������Ǥϥȥ�󥶥�����������û�����Ƥ����ʤ���Фʤ�ޤ���

Ʊ���ڥ�������ʸ��������Ʊ������ͥ�̾��Ʊ��ȥ�󥶥�������⤫��ʣ�������Τ�����硢 �ǡ����١��������Ф�1�Ĥ����ΤΤߤ�������褦�˷��ꤷ�ޤ��� �������̤Υڥ�������ʸ�����������ΤϾ�˸��̤����ΤȤ����������ޤ��� Ʊ�ͤ��̤Υȥ�󥶥�����󤫤�����Τ�1�Ĥ����ΤˤޤȤ���뤳�ȤϷ褷�Ƥ���ޤ��� ��ʣ�������Υ��󥹥��󥹤��Ǻ����������㳰�Ǥ�����NOTIFY��Ʊ��ȥ�󥶥�����󤫤�����Τ��������줿���֤���������뤳�Ȥ��ݾڤ��ޤ��� �ޤ��ۤʤ�ȥ�󥶥�����󤫤�Υ�å��������ȥ�󥶥������Υ��ߥåȽ����������뤳�Ȥ��ݾڤ��ޤ���

NOTIFY��¹Ԥ��륯�饤����ȼ��Ȥ����������Τ����Υ���ͥ��ƻ뤷�Ƥ��뤳�ȤϤ褯����ޤ��� ���ξ�硢Ʊ������̾��ƻ뤹��¾�Υ��å������Ф���Τ�Ʊ���褦�����Υ��٥�Ȥ���äƤ��ޤ��� ���ץꥱ�������Υ����å��ˤ���ޤ����������̵�̤ʺ�Ȥˤʤ뤳�Ȥ�����ޤ��� �㤨�С����Υ��å���󤬽񤭽Ф����Ф���Υǡ����١������Ф��빹����Ĵ�٤뤿��˥ơ��֥�κ��ɤ߹��ߤ�Ԥ����ʤɤ��ͤ����ޤ��� ���Υ��٥�ȥ�å�������ˤ������θ����å����Υ����Хץ�������PID�ȡ�libpq�������뼫ʬ���Ȥ�PID��Ʊ�����ɤ��������դ��뤳�Ȥǡ��������ä�;�פʺ�Ȥ����Ǥ��ޤ��� PID��Ʊ���Ǥ���С��������Υ��٥�Ȥϼ�ʬ���Ȥ���ķ���֤äƤ�����ΤǤ��ꡢ̵�뤹�뤳�Ȥ��Ǥ��ޤ���

�ѥ�᡼��

channel

�����ʥ�Ȥ������������Υ���ͥ�̾�Ǥ���Ǥ�դμ��̻ҡˡ�

payload

���ΤȰ����̿������"�ڥ�������"ʸ����Ǥ��� �����ñ���ʸ�����ƥ��Ȥ��ƻ��ꤵ��ʤ���Фʤ�ޤ��� �ǥե���Ȥ�����Ǥϡ�8000�Х���̤���Ǥʤ���Фʤ�ޤ��� (�Х��ʥ�ǡ����ޤ����絬�Ϥʾ�����Ϥ��ʤ���Фʤ�ʤ��ΤǤ���С��ǡ����١����ơ��֥���˳�Ǽ���쥳���ɤΥ������������뤳�Ȥ������Ǥ���)

����

�����Ѥߤ������٤Ƥδƻ륻�å����ǽ�������Ƥ��ʤ����Τ��ݻ����뤿��Υ��塼��¸�ߤ��ޤ��� ���Υ��塼�����äѤ��ˤʤ�ȡ�NOTIFY��ƤӽФ��ȥ�󥶥������Υ��ߥåȤ˼��Ԥ��ޤ��� ���塼�Ϥ��ʤ��礭�ʤ��(ɸ��Υ��󥹥ȥ졼������8�����Х���)�Ǥ��ꡢ�ۤȤ�ɤ��٤ƤδĶ��ǽ�ʬ���礭���Ǥ���Ϥ��Ǥ��� ���������å����NOTIFY��¹Ԥ������Ĺ���֤Υȥ�󥶥����������ä���硢���塼�����Ǥ��Ф��Ȥ������ʤ��ʤ�ޤ��� ���塼��Ⱦʬ�ޤǤ��ޤ�ȡ������ե���������Ǥ��Ф���˸���륻�å�����ؤ������ٹ𤬸����褦�ˤʤ�ޤ��� ���ξ�硢�Ǥ��Ф��������ʤ�褦�ˡ��μ¤ˤ��Υ��å����Ǥ��θ��ߤΥȥ�󥶥�������λ������褦�ˤ��ʤ���Фʤ�ޤ���

NOTIFY��¹Ԥ����ȥ�󥶥������Ǥ����ꥳ�ߥåȤ�������뤳�ȤϤǤ��ޤ���

pg_notify

���Τ��������뤿���pg_notify(text,text)�ؿ�����Ѥ��뤳�Ȥ�Ǥ��ޤ��� ���δؿ�����1�����Ȥ��ƥ���ͥ�̾����2�����Ȥ��ƥڥ������ɤ���ޤ��� ����Υ���ͥ�̾���ڥ������ɤǺ�Ȥ��ʤ���Фʤ�ʤ����ϡ�NOTIFY���ޥ�ɤ�ꤳ�δؿ�����Ѥ����������ʤ��ñ�Ǥ���

��

psql����ƻ�/���ν���������ȼ¹Ԥ�Ԥ��ޤ���

LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.
NOTIFY virtual, 'This is the payload';
Asynchronous notification "virtual" with payload "This is the payload" received from server process with PID 8448.

LISTEN foo;
SELECT pg_notify('fo' || 'o', 'pay' || 'load');
Asynchronous notification "foo" with payload "payload" received from server process with PID 14728.

�ߴ���

ɸ��SQL�ˤ�NOTIFY�Ϥ���ޤ���

��Ϣ����

LISTEN, UNLISTEN