1

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

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

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

删除表总是失败并显示表被锁定的消息。我看过其他一些帖子,这些帖子表明可能存在开放式语句句柄或其他杂物。由于我对所有这些都使用“sqlite_exec()”,所以除了数据库句柄本身之外,我没有任何打开的数据库。

事务中不允许删除表吗?

4

1 回答 1

0

删除表时,当表上仍有一些活动游标时,您会收到“表已锁定”消息,即,当您没有完成语句(或没有以您使用的任何语言关闭查询对象时) .

于 2018-01-29T20:39:59.950 回答