Reputation: 562
I have two sqlite databases and want to copy a table from database A to database B. The other tables in database A should not be copied. I try to ATTACH database, then use INSERT but have exception "no such table" on attached table. My code:
private final String TABLE_NAME = "LOAD_IMAGES";
private final String COLUMN_UNIT_ID = "UNIT";
private final String COLUMN_LOAD = "LOAD";
public void createTable(){
String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
+ COLUMN_UNIT_ID + " INTEGER NOT NULL, "
+ COLUMN_LOAD + " INTEGER NOT NULL DEFAULT 0);";
database.execSQL(CREATE_TABLE);
}
public void insertData() {
String path = App.filesDir + '/' + "data";
database.execSQL("ATTACH DATABASE '" + path + "' AS data;");
String ADD_DATA_INTO_TABLE = "INSERT INTO '" + TABLE_NAME + "'("
+ COLUMN_UNIT_ID + ", " + COLUMN_LOAD +") " +"SELECT " +
COLUMN_UNIT_ID + ", " + COLUMN_LOAD + " FROM 'data.IMAGES';";
}
Exception log:
android.database.sqlite.SQLiteException: no such table: data.IMAGES (code 1): , while compiling: INSERT INTO 'LOAD_IMAGES'(UNIT, LOAD) SELECT UNIT, LOAD FROM 'data.IMAGES';
I try to write :
LOAD FROM data.IMAGES
or
LOAD FROM 'data'.'IMAGES'
or
LOAD FROM data'.'IMAGES
but nothink changed.
Table of second database "IMAGES" structure:
Upvotes: 0
Views: 1084
Reputation: 180060
FROM 'data.IMAGES'
This is interpreted as a plain table name. Remove the quotes.
Upvotes: 1