Я использую базу данных SQLite в памяти и пытаюсь удалить таблицу с помощью следующей команды.
DROP TABLE 'testing' ;
Но когда я выполняю инструкцию SQL, я получаю эту ошибку
SQL logic error or missing database
Перед запуском запроса «Удалить таблицу» я проверяю, существует ли таблица в базе данных с этим запросом. Поэтому я уверен, что таблица существует, и у меня есть соединение с базой данных.
SELECT count(*) FROM sqlite_master WHERE type='table' and name='testing';
Эта база данных загружается в память из файловой базы данных, и после того, как я пытаюсь удалить эту таблицу, база данных сохраняется из памяти в файловую систему. Затем я могу использовать стороннюю утилиту SQLite, чтобы просмотреть файл SQLite и проверить, существует ли «тестирование». Используя ту же самую стороннюю утилиту SQLite, я могу выполнить инструкцию SQL «Drop TABLE» без ошибок.
Я могу создавать / обновлять таблицы без проблем.
Мои вопросы:
- Есть ли разница между базой данных памяти и файловой базой данных в SQLite при удалении таблицы?
- Есть ли способ отключить возможность отбрасывать таблицу в SQLite, которую я, возможно, как-то акцентно включил?
Редактировать: Похоже, что-то связано с заблокированной таблицей. Все еще расследую.