CREATE RULE name AS ON event TO object [ WHERE condition ] DO [ INSTEAD ] action ������ action �ϰʲ��ΤȤ���Ǥ��� NOTHING | query | ( query ; query ... ) | [ query ; query ... ]
��������롼���̾���Ǥ���
���٥�ȤȤϡ�SELECT��UPDATE�� DELETE��INSERT�Τ����줫�Ǥ���
���֥������ȤȤϡ�table �ޤ���table.column �Τ����줫�Ǥ��ʸ������Ǥ� table�Τߤ��ºݤ˼�������Ƥ��ޤ��ˡ�
Ǥ�դΥ֡���������˾�P�Ǥ�����P��new�� old�ʳ��ΤɤΥơ��֥�Ȥ��뤳�Ȥ�Ǥ��ޤ���
action��������ñ���ޤ���ʣ�����䤤��碌�ϡ�Ǥ�դ�SQL SELECT�� INSERT��UPDATE�� DELETE��NOTIFYʸ�Τɤ�Ǥ���ޤ���
condition�� action�������Ǥϡ����̤ʥơ��֥�̾new��old�ϻ��Ȥ����ơ��֥��object�ˤ��ͤȤ��뤿��˻Ȥ����Ȥ��Ǥ��ޤ��� new��ON INSERT��ON UPDATE�롼����������ޤ��Ϲ�������Ƥ��뿷�����Ԥλ��Ȥ�ͭ���Ǥ��� old�� ON UPDATE��ON DELETE�롼�뤬�������������Ƥ����¸�ιԤȤ���Τ�ͭ���Ǥ���
PostgreSQL���롼�륷���ƥ� �ˤ�äơ��ǡ����١����ơ��֥����������������������ؤȤ��ƹԤ��륢��������������뤳�Ȥ��Ǥ��ޤ����롼��ϥơ��֥�ӥ塼��������뤿��ˤ�Ȥ��ޤ���
�롼��θ���ϸ��̤Υ����ʹԡˤ������������졢���������������������硢�Ť���������������������оݡˤȡ��������������ʹ������ɲä��оݡ�¸�ߤ���Ȥ������ȤǤ���Ϳ����줿���٥�ȷ�����Ū�Υ��֥������ȡʥơ��֥�ˤΤ��٤ƤΥ롼��ϡ����ꤵ��ʤ����֤ǿ�������ޤ���WHERE���¸�ߤ�����ˤǻ��ꤵ�줿condition�����Ǥ����硢���Υ롼��� action��ʬ���¹Ԥ���ޤ���INSTEAD�����ꤵ���ȡ������䤤��碌������� action���Ԥ��ޤ��������Ǥʤ���硢 ON INSERT �ξ��ϸ����䤤��碌�θ�ˡ�ON UPDATE �� ON DELETE �ξ��ϸ����䤤��碌�����˹Ԥʤ��ޤ��� condition�� action��ξ���Τʤ��ǡ��Ť��������뤤�Ͽ�������������Υե�����ɤ��ͤ� old.attribute-name �� new.attribute-name ����������ޤ���
�롼���action��ʬ�ϡ�1�İʾ���䤤��碌����Ĥ��Ȥ��Ǥ��ޤ���ʣ�����䤤��碌�����ˤϡ����ä��ޤ����礫�ä���[]�ˤǰϤߤޤ������Τ褦���䤤��碌�ϻ��ꤵ�줿���֤Ǽ¹Ԥ���ޤ��ʰ��������֥������Ȥ�ʣ���롼��μ¹Խ��֤ˤϲ����ݾ㤬����ޤ���ˡ� action��ư�����ʤ����Ȥ������NOTHING��Ȥ����Ȥ�Ǥ��ޤ����������äơ�DO INSTEAD NOTHING�롼���(���ξ�郎���ξ��)�����䤤��碌�μ¹Ԥ��������ޤ���DO NOTHING �롼��Ϥʤˤ⤷�ޤ���
�롼���action��ʬ��ư���¥�����桼�����ޥ�ɤ�Ʊ�����ޥ�ɤȥȥ��������̻ҤǼ¹Ԥ��ޤ���
�������Ǥϡ�ON SELECT�롼���̵����INSTEAD�롼��Ǥʤ���Фʤ餺��ñ��SELECT�䤤��碌������Ω�ĥ�����������äƤ��ʤ���Фʤ�ޤ����Τ褦�ˤ��ơ�ON SELECT�롼��ϥ��֥������ȥơ��֥�����Ū�˥ӥ塼���Ѥ������Υӥ塼�βĻ�Ū�����Ƥϡʤ⤷���ä��Ȥ��Ƥ�˥ơ��֥���˳�Ǽ����Ƥ����ΤǤϤʤ����롼���SELECT�䤤��碌�ˤ�ä��֤��줿�ԤǤ����ºݤΥơ��֥������������ON SELECT�롼�������������CREATE VIEW���ޥ�ɤ�������褤�����Ȥ���Ƥ��ޤ���
CREATE VIEW ��(�ظ�γ�Ǽ�ΰ褬���פ�)���ߡ��Υơ��֥�������������� ON SELECT �롼����Ϣ�Ť��ޤ��������ƥ�ϡ��ºݤΥơ��֥뤬�ɤ��ˤ���Τ���Ƚ�ǤǤ��ʤ����ᡢ�ӥ塼���Ф��빹������Ĥ��ޤ���ON INSERT��ON UPDATE��ON DELETE �롼��(�⤷���ϡ���Ū�˱����Ƥ��Τ����ΰ���)��������ơ��ӥ塼�ؤι�������¾�Υơ��֥�ؤ�Ŭ�ڤʹ��������ִ����뤳�Ȥǡ�������ǽ�ʥӥ塼�Ȥ�������������뤳�Ȥ��Ǥ��ޤ���
�ӥ塼�ι����κݤ˾���դ��롼��λ��Ѥ�ͽ�ꤷ�Ƥ����硢��ʤ�����ޤ������Υӥ塼�˵��Ĥ��������줾���̵��� INSTEAD �롼����Ѱդ��� ɬ�������뤳�ȤǤ����롼�뤬����դ����ޤ��ϡ�INSTEAD �ǤϤʤ���硢�����ƥ�Ϲ������λ�Ԥ���䤷�ޤ������ξ����ߡ��ơ��֥�ؤ�����Ԥʤ����Ȥˤʤ�ȥ����ƥब�ߤʤ�����Ǥ�������դ��롼��������Ƥλ��Ѥ����륱�������ΤǤ���С�̵���� DO INSTEAD NOTHING �롼����ɲä��������ƥ�˥��ߡ��ơ��֥�ؤι�����Ԥʤ����Ȥ��褷�Ƥʤ����Ȥ������뤳�Ȥǡ������¸����뤳�Ȥ��Ǥ��ޤ�������ˡ�INSTEAD �Ǥʤ�����դ��롼���������ޤ�������餬��ư�����Ȥ����Ǥϡ��ǥե���Ȥ�INSTEAD NOTHING ư����ɲä���ޤ���
�ơ��֥�˥롼���������뤿��ˤϡ��롼�������������������äƤ��ʤ���Фʤ�ޤ����¤��Ѥ���ˤ�GRANT�� REVOKE��Ȥ��ޤ���
�۴ĥ롼����뤿������դ�ʧ�����ȤϤȤƤ���פǤ������Ȥ��С�������2�ĤΥ롼�뤽�줾�줬 PostgreSQL�˼��������줿��硢SELECT���ޥ�ɤϡ��䤤��碌�����٤�۴Ĥ������������ PostgreSQL�˥��顼��ɽ�������ޤ���
CREATE RULE "_RETemp" AS ON SELECT TO emp DO INSTEAD SELECT * FROM toyemp; CREATE RULE "_RETtoyemp" AS ON SELECT TO toyemp DO INSTEAD SELECT * FROM emp;
�ʲ���EMP�������褦�Ȥ�����ߤϡ��䤤��碌�����٤�۴Ĥ������뤿���PostgreSQL�˥��顼��ȯ�Ԥ����ޤ���
SELECT * FROM emp;
���ߡ��롼�뤬 NOTIFY �䤤��碌��ޤ��硢NOTIFY ��̵���˼¹Ԥ���ޤ����Ĥޤꡢ�롼���Ŭ�Ѥ��٤��Ԥ�¸�ߤ��ʤ��ä��Ȥ��Ƥ⡢NOTIFY ��ȯ�Ԥ���ޤ����㤨�С�
CREATE RULE notify_me AS ON UPDATE TO mytable DO NOTIFY mytable; UPDATE mytable SET name = 'foo' WHERE id = 42;
�Ǥϡ�id=42 �ιԤ�¸�ߤ��Ƥ⡢¸�ߤ��ʤ��Ƥ� UPDATE ���ˤ��NOTIFY ���٥�Ȥ���������ޤ�������ϼ���������¤Ǥ��ꡢ�������������ǽ��������ޤ���