我正在使用sqlite4java來處理sqlite數據庫。我現在想從數據庫複製一個表到dbtest。所以我在這裏找到了代碼。但我總是有一個錯誤。首先,我打開我的新創建的數據庫的連接,並隨後附上了其他數據庫使用以下命令: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和有它工作沒有任何問題,但我不能附加數據庫存在(這樣做自動)。我必須使用另一種表示法來使用兩個數據庫嗎?
編輯: 我現在使用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;
問題通過使用數據庫文件的絕對路徑解決。
我加上我現在想我的問題。 –