Hirdetés

Új hozzászólás Aktív témák

  • kw3v865

    senior tag

    válasz kw3v865 #5681 üzenetére

    Na, most mégiscsak megakadtam a logikai replikációnál: triggert (vagy rule-t, mindegy) szeretnék rakni arra a táblára, ahová replikálódik az eredeti tábla tartalma. Egyelőre nem tudtam működésre bírni. Hibát nem dob, csak egyszerűen nem csinál semmit.
    Egy tök egyszerű triggerről van szó a példa kedvéért: egy másik táblába insertál valamit, ha meghívódik (insertre van ráállítva).

    CREATE OR REPLACE FUNCTION valami()
    RETURNS TRIGGER
    LANGUAGE PLPGSQL
    AS $$
    BEGIN
    INSERT INTO t2 (c) VALUES ('xyz');
    RETURN NEW;
    END;
    $$

    CREATE TRIGGER trg
    AFTER INSERT ON t1
    FOR EACH ROW
    EXECUTE PROCEDURE valami()

    Azt találtam, hogy külön engedélyezni kell ilyen esetben a triggert: ALTER TABLE t1 ENABLE ALWAYS TRIGGER trig;
    Ez megtörtént, de hiába.

    Ha nem az "eredeti", hanem a replikátum táblába insert-álok, akkor meghívódik. Viszont én azt szeretném, hogy akkor is működjön, ha az eredeti táblába insert-álok valamit. Rule-lal sem megy.
    Vajon mi lehet ennek az oka?

Új hozzászólás Aktív témák