***** SQLITE ***** create table T(A int); create trigger R after insert on T for each row when (new.A > 3) begin update T set A = 5 where A = 4; update T set A = A+1 where A = 5; end; insert into T values (2); insert into T values (3); insert into T values (4); insert into T values (5); insert into T values (6); insert into T values (7); select * from T; drop trigger R; drop table T; ***** POSTGRESQL ***** create table T(A int); create function Rf() returns trigger as ' declare begin update T set A = 5 where A = 4; update T set A = A+1 where A = 5; return null; end; ' language plpgsql; create trigger R after insert on T for each row when (new.A > 3) execute procedure Rf(); insert into T values (2); insert into T values (3); insert into T values (4); insert into T values (5); insert into T values (6); insert into T values (7); select * from T; drop trigger R on T; drop function Rf(); drop table T;