Я использую sqlite4java для обработки sqlite db. Теперь я хочу скопировать таблицу из базы данных в dbtest. Поэтому я нашел код здесь в stackoverflow. Но я всегда получаю ошибку. Прежде всего я открыть соединение с моей новой созданной базы данных, а затем я прилагаю другую базу данных с помощью следующей команды:sqlite4java нет такой ошибки таблицы при добавлении другой базы данных
ATTACH DATABASE database AS database;
Это прекрасно работает. dbtest был открыт раньше как новая база данных. Затем я хочу скопировать таблицы: Следовательно, таблица уже создана, и она такая же, как и в другой базе данных.
INSERT INTO dbtest.Routing (id, source, destination, metadata, zone_src, zone_dst,cost) SELECT * FROM database.Routing;
Но после выполнения этого я получаю сообщение об ошибке:
com.almworks.sqlite4java.SQLiteException: [1] DB[1] exec() no such table: dbtest.Routing
Я пробовал также с SQLite Studio, и там он работает без каких-либо проблем, но я не могу присоединить базу данных там (это делается автоматически). Должен ли я использовать другую нотацию для использования двух баз данных?
EDIT: Теперь я использую ответ от CL. Но это приводит к новому вопросу:
com.almworks.sqlite4java.SQLiteException: [1] DB[1] exec() no such table: second.Routing
Что я изменил?
ATTACH DATABASE database AS second; //new name for the database file and it will be attached as second, because if I use the debug function it says: Database second already in use.
Если я использую эту команду, я получаю указанную выше ошибку.
INSERT INTO Routing (id, source, destination, metadata, zone_src, zone_dst,cost) SELECT * FROM second.Routing;
Проблема решена путем использования абсолютного пути для файла базы данных.
добавить, что теперь я пытался на мой вопрос. –