P Kishor wrote: > So, I am creating a new database, and want to set up triggers to track > row counts in each table as rows are inserted or deleted. > > A couple of questions -- > > 1. Do I have to create a separate pair of AFTER INSERT and AFTER > DELETE triggers for each table that I want to track,
Yes. > or is there a way > to create a generic trigger that fires whenever any table is touched > and returns the table name and the number of rows affected? > No. > 2. Doing a trigger like so is fine > > sqlite> create trigger del_foo after delete on foo > ...> begin > ...> update counts set rows = rows - 1 where tablename = 'foo'; > ...> end; > > however, what if I > > DELETE FROM foo WHERE msg LIKE 'sqlite%' > > How do I get the number of rows that were deleted by the above DELETE? > Do I first do a SELECT to find out the number of matches before doing > the DELETE? You don't need to the trigger fires for each row that is deleted, so you always delete 1. > > 3. When doing a batch of INSERTs in a transaction, will the trigger > fire after the transaction is committed, or on every update? I am > assuming the former, but, in that case, how will know how many rows > were inserted? > Same for the insert trigger. It executes after each row is inserted. Always add 1. HTH Dennis Cote _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users