1

Temat: Reguły i rekurencja

Utworzyłem regułę do tabeli, która zastępuje INSERT

CREATE OR REPLACE RULE ins AS
    ON INSERT TO test004 DO INSTEAD  INSERT INTO test004 (gid, "NazwaCiagu", "NazwaLinii", the_geom, "Wprowadzil", "Data_wprow")
  VALUES (new.gid, new."NazwaCiagu", new."NazwaLinii", new.the_geom, "current_user"(), now());

Jednak nie da się z niej skorzystać z powodu wywołania rekurencyjnego - jeden INSERT powoduje wywołanie następnego itd.

Jak to ominąć?

2

Odp: Reguły i rekurencja

Zamień to na triggera before insert

3

Odp: Reguły i rekurencja

4

Odp: Reguły i rekurencja

No niestety z tymi regułami to nie jest tak prosto. Ogólnie raczej należy się ich wystrzegać.
W tym przypadku musiałbyś do update dodać warunek

WHERE <columna>=NEW.<columna>

ale to musisz mieć w tabeli coś co jednoznacznie identyfikuje kolumny, jakiś klucz (może u Ciebie to jest gid).
A i tak nie mam pewności czy to zawsze zadziała, takie są reguły smile.

5

Odp: Reguły i rekurencja

Dzięki. Potestuję triggery.