What you describe isn't possible in bare SQL. Transactions (either implicit or explicit) isolate users. To synchronize processes as in your example you need some IPC between applications (or threads or whatever else). To answer post#1 you can block a second writer by using an IMMEDIATE or EXCLUSIVE transaction issued by the first writer. All other users will see the DB state before the transaction began. Only when first writer issues COMMIT all users will see the DB state after the transact