SQLite Forum

Transactions involving multiple databases
Login
It should be interpreted as if the ".  But" were not separate sentences but the part following "but" were a correlated subjunctive even though in English Grammar such construction such would usually be indicated with the period being replaced with a semi-colon (";"), the But not being capitalized and followed by a comma (",").

In other words,  in the case where the journal_mode is not WAL (that is, for the greater certainty, is not one of the persistent rollback modes) and the main database (and the attached database) is not :memory: (which are non-persistent) THEN two-phase commit is used to maintain consistency across attached database files.

However, if there conditions are NOT complied with (that is, one of the databases involved is a :memory: database, or the main database is a :memory: database, or the journal mode is not rollback using rollback files on persistent (disk) storage that two-phase commit WILL NOT BE USED however each individual database will still respect atomicity of transactions in accordance with the settings applicable to that database file.

** Edited to fix bad punctuation