¾�ΥС�������ʸ�� �� 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

40.6. PL/Perl�ȥꥬ

PL/Perl����Ѥ��ƥȥꥬ�ؿ���������뤳�Ȥ��Ǥ��ޤ��� �ȥꥬ�ؿ��Ǥϡ�$_TD�Ȥ����ϥå���ؤλ��Ȥˡ����ߤΥȥꥬ���٥�Ȥ˴ؤ�����󤬴ޤޤ�Ƥ��ޤ��� $_TD������ѿ��Ǥ��ꡢ�ƥȥꥬ�ƤӽФ����Ф��ƶɽ�Ū���ͤ��̡��˼��Ф��ޤ��� �ʲ���$_TD�Ȥ����ϥå���ؤλ��ȤΥե�����ɤ򼨤��ޤ���

$_TD->{new}{foo}

NEW��foo���͡�

$_TD->{old}{foo}

OLD��foo���͡�

$_TD->{name}

�ƤӽФ��줿�ȥꥬ��̾����

$_TD->{event}

�ȥꥬ���٥�ȡ� INSERT��UPDATE��DELETE��TRUNCATE���⤷����UNKNOWN��

$_TD->{when}

�ȥꥬ�����ĸƤӽФ��줿���� BEFORE��AFTER���⤷����UNKNOWN��

$_TD->{level}

�ȥꥬ��٥롣 ROW��STATEMENT���⤷����UNKNOWN��

$_TD->{relid}

�ȥꥬ��ȯ�Ը��ơ��֥��OID��

$_TD->{table_name}

�ȥꥬ��ȯ�Ը��ơ��֥��̾����

$_TD->{relname}

�ȥꥬ��ȯ�Ը��ơ��֥��̾���� ������ѻ�ͽ��ǡ�����Υ�꡼���Ǻ��������ǽ��������ޤ��� �����$_TD->{table_name}����Ѥ��Ƥ���������

$_TD->{table_schema}

�ȥꥬ��ȯ�Ը��ơ��֥뤬¸�ߤ��륹�����ޤ�̾����

$_TD->{argc}

�ȥꥬ�ؿ��ΰ����ο���

@{$_TD->{args}}

�ȥꥬ�ؿ��ΰ����� $_TD->{argc}��0�ξ���¸�ߤ��ޤ���

�ԥ�٥�ȥꥬ�ϰʲ��Τ����줫���֤����Ȥ��Ǥ��ޤ���

return;

����¹Ԥ��ޤ���

"SKIP"

����¹Ԥ��ޤ���

"MODIFY"

�ȥꥬ�ؿ��ˤ�ä�NEW�Ԥ��ѹ����줿���Ȥ򼨤��ޤ���

�ʲ��ϥȥꥬ�ؿ�����ǡ������ޤǤ������ΰ�������ڤ����ΤǤ���

CREATE TABLE test (
    i int,
    v varchar
);

CREATE OR REPLACE FUNCTION valid_id() RETURNS trigger AS $$
    if (($_TD->{new}{i} >= 100) || ($_TD->{new}{i} <= 0)) {
        return "SKIP";    # INSERT/UPDATE���ޥ�ɤ��ä��ޤ���
    } elsif ($_TD->{new}{v} ne "immortal") {
        $_TD->{new}{v} .= "(modified by trigger)";
        return "MODIFY";  # �Ԥ��ѹ�����INSERT/UPDATE���ޥ�ɤ�¹Ԥ��ޤ���
    } else {
        return;           # INSERT/UPDATE���ޥ�ɤ�¹Ԥ��ޤ���
    }
$$ LANGUAGE plperl;

CREATE TRIGGER test_valid_id_trig
    BEFORE INSERT OR UPDATE ON test
    FOR EACH ROW EXECUTE PROCEDURE valid_id();