The rollback journal is used to return the database to its previous state in the case of a partial write, not complete writes which are interrupted. As you didn't commit the transaction, no write occurred, never mind a partial one, so the database remained in its initial state.
Deleting a rollback journal is a bad idea. In this case it was harmless, but normally it's an excellent way to corrupt your database. As to where uncommitted transactions live, I am not sure. I'll let someone else answer that. On November 23, 2017 9:13:20 PM EST, "林自均" <johnl...@gmail.com> wrote: >Hi folks, > >When I was learning about rollback journal, I did the following tests: > >(in shell 1) >$ sqlite3 /tmp/db.sqlite >SQLite version 3.21.0 2017-10-24 18:55:49 >Enter ".help" for usage hints. >sqlite> PRAGMA journal_mode; >delete >sqlite> CREATE TABLE bank (name STR, money INT); >sqlite> INSERT INTO bank VALUES ("john", 5566); >sqlite> BEGIN; >sqlite> UPDATE bank SET money = money + 100 WHERE name = "john"; >sqlite> > >(then in shell 2) >$ kill -kill $(pidof sqlite3) # kills the sqlite3 process in shell 1 >$ rm -f /tmp/db.sqlite-journal >$ sqlite3 /tmp/db.sqlite .dump >PRAGMA foreign_keys=OFF; >BEGIN TRANSACTION; >CREATE TABLE bank (name STR, money INT); >INSERT INTO bank VALUES('john',5566); >COMMIT; > >I was expecting that deleting the rollback journal would commit the >uncommitted transaction (i.e. increase money from 5566 to 5666). >However, >it didn't. > >I also noticed that the md5sum of db.sqlite are the same before the >UPDATE >query and after it, which means that the UPDATE query doesn't really >write >into db.sqlite. Does it only write into memory? > >Thanks for answering my questions. > >John Lin >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users -- Sent from my Android device with K-9 Mail. Please excuse my brevity. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users