sqlite 是支持事务处理的。如果你知道你要同步删除很多数据,不仿把它们做成一个统一的事务。
通常一次 sqlite3_exec 就是一次事务,如果你要删除1万条数据,sqlite就做了1万次:开始新事务->删除一条数据->提交事务->开始新事务->… 的过程。这个操作是很慢的。因为时间都花在了开始事务、提交事务上。
你可以把这些同类操作做成一个事务,这样如果操作错误,还能够回滚事务。
事务的操作没有特别的接口函数,它就是一个普通的 sql 语句而已:
分别如下:
int result;
result = sqlite3_exec( db,"begin transaction",&zErrorMsg ); //开始一个事务
result = sqlite3_exec( db,"commit transaction",&zErrorMsg ); //提交事务
result = sqlite3_exec( db,"rollback transaction",&zErrorMsg ); //回滚事务
原文链接:/sqlite/203065.html