If you are doing each update in a separate transaction it will be much slower than wrapping them in a single transaction.
See the faq here, it refers to inserts but updates will be the same. http://sqlite.org/faq.html#q19 Cheers Paul On Wed, 30 May 2018 at 09:34, Torsten Curdt <tcu...@vafer.org> wrote: > > Do the select and updates run inside a explicit transaction or they > > run in individual implicit transactions? > > > > implicit - does that make a big difference in this case? > > > If you really want a single query you could write something like: > > > > WITH data(id, c1, c2 /*, ... */) AS (VALUES > > (123, 'abc', 'xyz' /*, ... */), > > (456, 'xxx', 'yyy' /*, ... */), > > (789, 'xyz', 'xyz' /*, ... */) > > /* ... */ > > ) UPDATE tab > > SET (c1, c2 /*, ... */) = (SELECT c1, c2 /*, ... */ WHERE data.id = > > tab.id) > > WHERE id IN (SELECT id FROM data); > > > > > But for that again means all the data (or the single query) needs to be > built up in memory. > > cheers, > Torsten > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- Paul www.sandersonforensics.com SQLite Forensics Book <https://www.amazon.co.uk/dp/ASIN/1980293074> _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users