После краткого размышления я хочу превратить свой предыдущий ответ в «ответ».
Подобная ситуация - в любой базе данных SQL - идеальный случай для SQL «транзакций». Транзакция - это атоми c единица работы. Сначала вы BEGIN TRANSACTION
, затем вы вводите одну или несколько SQL команд. Когда вы заканчиваете sh, COMMIT
. Или, если что-то пойдет не так, ROLLBACK
.
(используйте try..except
logi c в своих программах, чтобы гарантировать, что ROLLBACK
произойдет, если возникнет исключение.)
Другие пользователи системы базы данных либо увидят, что "все внесенных вами изменений произошли, мгновенно", когда вы COMMIT
, либо что "Ни один из них не сделал." Другие пользователи не будут видеть базу данных в «промежуточном состоянии», даже если вы это сделаете.