| PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 37. PL/Perl - Perl �������� | Fast Forward | Next | 
PL/Perl ���ڿ���ͨ��ʹ�� $_TD ɢ����������д������������
PL/Perl ����������д�������������ڴ����������ɢ������ $_TD �����йص�ǰ�������¼�����Ϣ��ɢ������ $_TD ���ֶ��ǣ�
�ֶ� foo �� NEW ֵ��
һ���ֶ� foo �� OLD ֵ��
�����õĴ�����������
�������¼���INSERT��UPDATE��DELETE������ UNKNOWN
��ʱ���ô�������BEFORE��AFTER������ UNKNOWN
���������ROW��STATEMENT������ UNKNOWN
�����������ı�� OID
�����������ı������
�����������IJ���
�����������IJ�������
��������������֮һ��
ִ�и����
��ִ�и����
���� 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();