Názor k článku PostgreSQL 9.1 aneb stále vpřed od Tomáš Vondra - A není nejjednodušší si nadefinovat vlastní proměnnou s...

  • Článek je starý, nové názory již nelze přidávat.
  • 2. 5. 2011 21:53

    Tomáš Vondra

    A není nejjednodušší si nadefinovat vlastní proměnnou s rowtype dané tabulky, na začátku si to nastavit jak potřebuji (na NULL v případě insertu, na OLD jinak), a pak porovnávat už tu proměnnou. Něco jako toto

    create table tx (i int, j int);

    create or replace function tx_trigger() returns trigger as $$
    declare
    v_old tx%rowtype;
    begin

    IF (TG_OP = 'INSERT') THEN
    v_old := NULL;
    ELSE
    v_old := OLD;
    END IF;

    IF (v_old.i = NEW.i) THEN
    raise notice 'equals';
    END IF;

    RETURN NEW;

    END;
    $$ LANGUAGE plpgsql;

    create trigger tx_trig before insert or update on tx for each row execute procedure tx_trigger();