我正在内存中运行 SQLite 数据库,并尝试使用以下命令删除表。
DROP TABLE 'testing' ;
但是当我执行 SQL 语句时,我得到了这个错误
SQL logic error or missing database
在我运行“删除表”查询之前,我会检查以确保该表存在于使用该查询的数据库中。所以我很确定该表存在并且我与数据库有连接。
SELECT count(*) FROM sqlite_master WHERE type='table' and name='testing';
该数据库从文件数据库加载到内存中,在我尝试删除该表后,数据库从内存保存到文件系统。然后我可以使用第三方 SQLite 实用程序来查看 SQLite 文件并检查“测试”是否存在,它确实存在。使用相同的第 3 方 SQLite 实用程序,我能够运行“Drop TABLE”SQL 语句而不会出现错误。
我能够毫无问题地创建/更新表。
我的问题:
- 删除表时,SQLite 中的内存数据库和文件数据库有区别吗?
- 有没有办法禁用在 SQLite 中删除我可能以某种方式强调打开的表的功能?
编辑:它似乎与锁定的表有关。还在调查。