sqlite:在事务中删除一个表?

时间:2013-07-18 20:36:53

标签: sqlite

我有一个简单的单表sqlite3数据库文件,它只有一个表。没有钥匙,国外或国内。没有触发器。我有以下工作流程:

如果数据库文件exixts打开它。

  • 开始独家交易
  • 按顺序从表格中选择所有行。
  • 在每一行上操作。
  • 删除每个已操作的行。
  • 完成后,计算表中剩余行数,如果为0,则删除表,然后取消链接数据库文件
  • 提交或回滚交易

drop-table始终失败,并显示表已锁定的消息。我已经看过其他一些帖子,表明可能有开放的声明句柄或其他残骸。由于我使用“sqlite_exec()”来表示所有这些,除了DB句柄本身之外,我没有任何开放式数据库。

交易中不允许使用丢弃表吗?

1 个答案:

答案 0 :(得分:0)

当删除表时,当表中仍有一些活动光标时,即当你没有完成一个语句时(或者没有以任何语言关闭查询对象时),你会得到“表被锁定”的消息重新使用)。