Я запускаю базу данных 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, которую я мог каким-то образом включить?
Изменить. Похоже, это как-то связано с заблокированным столом. Все еще исследую.