设置:Mac OS 10.12,SQLite 3.16 FMDB 2.6.2
我想用字段删除一些记录" 1-2-3"在X列中(该字段的格式包括破折号)。该记录存在于表中。
该表很大(> 1M记录),每个记录包含2个字段,每个字段都是在其他表中记录的引用(外键)。这意味着上述记录引用了其他2个表中的记录。
定义了Pragma:同步 =完整, locking_mode =独占, secure_delete =关闭。
所以相关代码如下:
[queue inTransaction:^(FMDatabase *db, BOOL *rollback)
{
BOOL res;
res=[db executeUpdate:@"DELETE FROM tbl WHERE X==?;",@"1-2-3"];
}]
挂起 sqlite3_step()函数 - 它被调用并在很长时间后返回。
删除多行时相同:
[queue inTransaction:^(FMDatabase *db, BOOL *rollback)
{
BOOL res;
res=[db executeUpdate:@"DELETE FROM tbl WHERE rowid IN (SELECT rowid FROM tbl WHERE X=some_value LIMIT 10);"];
}]
sqlite3_step()挂起并在很长时间后返回 - 几分钟。最后关闭了10行。
所有查询都在同一个线程上执行。
我想知道可能出现什么问题......
更新:INSERT操作成功。