What's better is that it tells you what you asked for...not what you think you asked for...which it does.
You've already been shown the correct solution...a WHERE clause... You want sqlite to do a complete record compare, including following update triggers, on EVERY record it looks at to see if something happened to change??? Yuck... As compare to the WHERE clause which does exactly what you want and runs oodles faster (in all likelihood). Michael D. Black Senior Scientist Advanced Analytics Directorate Advanced GEOINT Solutions Operating Unit Northrop Grumman Information Systems ________________________________________ From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of Paul van Helden [p...@planetgis.co.za] Sent: Tuesday, July 03, 2012 7:39 AM To: General Discussion of SQLite Database Subject: EXT :Re: [sqlite] Update trigger fires for all rows even if sqlite3_changes returns 0 You are right, sorry, just checked. sqlite3_changes returns number of records hit, not changed. Have been using sqlite for 2 years now and was always under the impression this was for actual changes. But which is better behaviour, reporting "row hits" versus real changes? Especially when it comes to triggers? On Tue, Jul 3, 2012 at 2:19 PM, Yuriy Kaminskiy <yum...@gmail.com> wrote: > Paul van Helden wrote: > > Is this correct? Should update triggers not only fire for actual > changes? I > > have a large table with a column which contains all NULL values except > for > > 4. I expected an UPDATE table SET column=NULL to only fire 4 triggers, > > except it fires for every row. > > I'm pretty sure that sqlite3_changes() in this case also returns *all* > rows, not > only 4 "really" changed. If you want triggers to only fire for really > changed > rows (and sqlite3_changes() to return only those 4 rows), you should add > WHERE > clause: > UPDATE table SET column=NULL WHERE column IS NOT NULL; > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users