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, 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?

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?

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?

Any other gotchas?


-- 
Puneet Kishor
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to