我有一个使用php访问的sqlite3数据库,用户可以同时插入和更新行(多线程)。 为了避免数据损坏(同时由于多个连接和对同一行的更改导致不准确的结果),我读到了sqlite的唯一事务(http://www.sqlite.org/lang_transaction.html)。 但是,我不确定我是否正确地称赞它。我正在使用phppdo。
$conn->beginTransaction();
$conn->exec("BEGIN EXCLUSIVE TRANSACTION");
//
//..a few insert and update queries
$db.commit();
据我了解,默认情况下,事务处于DEFFERED状态。 我的问题是 - 我所附的代码是否真的转换/创建了一个独占事务,如果没有,我该如何实现呢?
谢谢,
编辑: 这会有用吗?
$conn->exec("BEGIN EXCLUSIVE TRANSACTION");
//insert and update queries
$conn->exec("COMMIT");