0
2つのsqliteデータベースがあり、データベースAからデータベースBにテーブルをコピーしたい。データベースAの他のテーブルをコピーしないでください。 データベースをアタッチしようとしましたが、INSERTを使用しましたが、接続テーブルに「このようなテーブルはありません」という例外があります。 マイコード:Sqliteデータベースをアタッチし、テーブルAからテーブルBにデータを挿入
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';";
}
例外ログ:
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';
私が書いてみる:
LOAD FROM data.IMAGES
または
LOAD FROM 'data'.'IMAGES'
または
LOAD FROM data'.'IMAGES
ただし、ヒントは変更されません。第二のデータベース「画像」の
こんにちは、私はクエリを編集: '文字列ADD_DATA_INTO_TABLE = "INSERT INTO '" + TABLE_NAME + "'(" + COLUMN_UNIT_ID +"、 "+ COLUMN_LOAD +") "+ は+ COLUMN_UNIT_ID + "SELECT""、 " + COLUMN_LOAD + "from data.IMAGES;"; 'しかし、それは動作しません。 (UNIT、LOAD)SELECT UNIT、LOAD FROM data.IMAGES; ' – Anton
明らかに、その他のデータベースファイルは存在しません。(SQLiteException:このようなテーブルはありません。data.IMAGES(code 1):コンパイル中に:INSERT INTO' LOAD_IMAGES 'その道で)。 –
[OK]をクリックすると、データベースが接続されているかどうかを知ることができますか?たぶん、リスナー? – Anton