概述
SQLite事务机制:
(1)提高对数据操作的速率,因为这可以减少频繁对数据库的写入或读取(相当于提供了一个缓冲区)
(2)启动事务后未提交的操作都是在内存中进行的,并不会真正影响到库中的数据,
(3)只有提交后的操作才会去修改库中的数据(注意:当提交后将无法回滚),因为在提交或者回滚后,
我们在内存中的操作已经被提交或者回滚到初始状态了;
(4)当提交或者回滚后,需要重新开启事务
SQLite事务机制具有的属性(ACID):
原子性(Atomicity):确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。
一致性(Consistency):确保数据库在成功提交的事务上正确地改变状态。
隔离性(Isolation):使事务操作相互独立和透明。
持久性(Durability):确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。
1、启动事务
启动事务后,启动事务后此时的操作将不会直接提交到库中,而是在内存中进行操作,直至内存中的操作被提交到库中,才会去修改库中的数据
BEGIN;
或者
BEGIN TRANSACTION;

2、提交事务
当我们去提交事务后,我们在事务中对数据的操作将会被提交到库中;提交后将无法进行回滚,此时再回滚将提示Error: cannot rollback - no transaction is active
COMMIT;
或者
END TRANSACTION;

3、回滚
当我们在启动事物后出现了操作失误,可通过回滚回滚到数据最近一次提交时;此时未提交的事务都将失效恢复至最近提交时的状态
ROLLBACK;

若是在数据库关闭或发生错误时,事务处理也会自动回滚
因为此时我们在内存中的操作还未被提交到我们的数据库中改变库中的数据,因此未提交操作但是数据库被关闭或者发生错误将会导致此前的操作被丢失
本文详细介绍了SQLite3的事务机制,包括原子性、一致性、隔离性和持久性的概念。在SQLite中,事务可以在启动后在内存中进行操作,直到提交才会改变数据库。提交事务后,操作不可回滚;而回滚则可以恢复到最近的提交状态。如果数据库关闭或发生错误,未提交的事务会自动回滚。

2223

被折叠的 条评论
为什么被折叠?



