> What stops the > UPDATE ports SET timeofday = CURRENT_TIMESTAMP WHERE id = NEW.id ; > from also triggering the AFTER UPDATE ON recursively? > > Perhaps a pragma or inSQLite are triggers non-recursive by default? > > I am using (now I have by semi-colons right) > CREATE TRIGGER tgrUpdate AFTER UPDATE ON myTable FOR EACH ROW > WHEN NEW.LastUpdate <= OLD. LastUpdate > BEGIN > UPDATE myTable SET LastUpdate = DATETIME('now') WHERE id = OLD.id; > END > > My intention is for the when to avoid infinite calls, but maybe I am > fooling myself.
Recursive triggers are off by default. Otherwise you could always add checks into the WHEN clause for seeing if any of the other fields was actually updated. WHEN NEW.LastUpdate <= OLD.LastUpdate AND ( --Something actually changed NEW.Field1 is not OLD.Field1 OR NEW.Field2 is not OLD.Field2 OR ... --Think you want to exclude LastUpdate from this OR'd list of changed fields to check ) _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users