�ȥꥬ�ץ����������PL/Tcl�Ǻ������뤳�Ȥ��Ǥ��ޤ��� PostgreSQL�Ǥϡ��ȥꥬ�Ȥ��ƸƤӽФ����ץ���������ϡ�trigger��������ͤ��֤������Τʤ��ؿ��Ȥ����������ɬ�פ�����ޤ���
�ȥꥬ�ޥ͡����㤫��ξ���ϡ��ʲ����ѿ���˳�Ǽ����ƥץ������������Τ��Ϥ���ޤ���
CREATE TRIGGERʸ�ˤ��ȥꥬ̾��
���Υȥꥬ�ץ���������ƤӽФ���ȯ�������ơ��֥�Υ��֥�������ID��
���Υȥꥬ�ץ���������ƤӽФ���ȯ�������ơ��֥��̾����
���Υȥꥬ�ץ���������ƤӽФ���ȯ�������ơ��֥�Υ������ޡ�
��Ƭ�˶��Υꥹ�����Ǥ���ġ��ơ��֥����̾��Tcl�ꥹ�ȡ�
Tcl��lsearch
���ޥ�ɤ���Ѥ��ơ����Υꥹ�Ȥ�����̾�����뤳�Ȥǡ��ǽ�����1�Ȥ��������ֹ椬�֤���ޤ���
����ϡ�PostgreSQL�Ǥ��̾������ֹ��դ���Ʊ���Ǥ�
�ʤޤ����Υꥹ�����Ǥϡ���¦�����°���ֹ�����������뤿��ˡ�������줿��ΰ��֤˸���ޤ��ˡ�
�ȥꥬ�ƤӽФ��μ���˱�������BEFORE�ޤ���AFTER�Ȥ���ʸ����
�ȥꥬ�ƤӽФ��μ���˱�������ROW�ޤ���STATEMENT�Ȥ���ʸ����
�ȥꥬ�ƤӽФ��μ���˱�������INSERT��UPDATE �ޤ���DELETE�Ȥ���ʸ����
INSERT/UPDATEư��ξ��Ͽ������ơ��֥�Ԥ��ͤ�DELETEư��ξ��϶������Ϣ������ ����Υ���ǥå�������̾�Ǥ��� NULL����Ϥ���������ˤϸ���ޤ���
UPDATE/DELETEư��ξ��ϸŤ��ơ��֥�Ԥ��ͤ�INSERTư��ξ��϶������Ϣ������ ����Υ���ǥå�������̾�Ǥ��� NULL����Ϥ���������ˤϸ���ޤ���
CREATE TRIGGERʸ�ǻ��ꤵ�줿���ץ���������ؤΰ�����Tcl�ꥹ�ȡ� ���ΰ����ϡ��ץ������������Τ���$1 ... $n�Ȥ��Ƥ⥢���������뤳�Ȥ��Ǥ��ޤ���
�ȥꥬ�ץ��������㤫�������ͤϡ�OK�Ȥ���ʸ����SKIP�Ȥ���ʸ����array get Tcl���ޥ�ɤˤ�ä��֤����ꥹ�Ȥ����1�Ĥ��뤳�Ȥ��Ǥ��ޤ��� ����ͤ�OK�ξ�硢�ȥꥬ��ȯ�Ԥ�������INSERT/UPDATE/DELETE�ˤ�����˽�������ޤ��� SKIP�ϥȥꥬ�ޥ͡�����ˤ��ιԤ��Ф���������Ϥ�������ߤ���褦�����Τ��ޤ��� �ꥹ�Ȥ��֤��줿���ϡ�PL/Tcl���Ф����ȥꥬ�ޥ͡�����ˤ�ä�Ϳ����줿$NEW�ǤϤʤ����ѹ������Ԥ���������褦�˥ȥꥬ�ޥ͡�������֤����Ȥ����Τ��ޤ� �ʤ����INSERT/UPDATE�ξ��Τ�ư��ޤ��ˡ� �����ޤǤ⤢��ޤ������������ơ��ȥꥬ��BEFORE����FOR EACH ROW�λ��ˤΤ߰�̣������ޤ��� ����ʤ���С�����ͤ�̵�뤵��ޤ���
�����ǡ��ơ��֥���������ͤȤ��Ƥ��ιԤ��Ф��빹������Ͽ�����롢������Υȥꥬ�ץ��������������ޤ��� �����ιԤ��������줿���ϡ������ͤ�0�˽�������졢���θ�γƹ���������1���û�����ޤ���
CREATE FUNCTION trigfunc_modcount() RETURNS trigger AS $$ switch $TG_op { INSERT { set NEW($1) 0 } UPDATE { set NEW($1) $OLD($1) incr NEW($1) } default { return OK } } return [array get NEW] $$ LANGUAGE pltcl; CREATE TABLE mytab (num integer, description text, modcnt integer); CREATE TRIGGER trig_mytab_modcount BEFORE INSERT OR UPDATE ON mytab FOR EACH ROW EXECUTE PROCEDURE trigfunc_modcount('modcnt');
�ȥꥬ�ץ��������㼫�Ȥ���̾��ǧ�����Ƥ��ʤ��������ܤ��Ƥ��������� ����ϡ��ȥꥬ�ΰ����Ȥ���Ϳ�����ޤ��� ����ˤ�ꡢ���Υȥꥬ�ץ�����������̤Υơ��֥�Ǻ����Ѥ��뤳�Ȥ��Ǥ��ޤ���