> 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
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users