<分区>
我有多个函数需要写入数据库并且它们相互调用。到目前为止,我一直在使用 SAVEPOINT 以允许嵌套事务。问题是我需要在第一个 SAVEPOINT 上获得一个 EXCLUSIVE 锁,而不是默认的 DEFERRED 锁(这是确保我以后不会被 SQLITE_BUSY 停止所必需的)。因此,我想做如下事情:
int foo(sqlite3 *db){ unsigned char wasIn = 1; if (!sqlite3_isInTransaction(db)){ sqlite3_query(db, "BEGIN EXCLUSIVE TRANSACTION"); wasIn = 0; } ...do stuff.... if (!wasIn){ sqlite3_query(db, "COMMIT TRANSACTION"); } }
知道如何实现吗?