在android中将数据从一个表复制到另一个表

2 sqlite android

我正在尝试将表 1(ITEM_DETAIL_TABLE) 中的所有值复制到表 2 (ITEM_REFRESH_TABLE)。下面用我的方法。但是在编译时出现语法错误。我不知道是什么问题。

public void ResetDbValues(){
                SQLiteDatabase db = MmpDBHelper.this.getWritableDatabase();
                 String sql1 = "INSERT INTO" + ITEM_REFRESH_TABLE + "SELECT * FROM " + ITEM_DETAIL_TABLE;
                 try {
                      Log.i("sql1=", sql1);

                      db.execSQL(sql1);


                    } catch (Exception exe) {
                        exe.printStackTrace();
                        db.endTransaction();
                        Log.e("Insertion failed",
                                "Transaction failure when inserting itemdet data.");
                        this.closeDatabase();
                        Log.i("DB closed", "Database closed successfully.");
                        errCode = "Err-DB-06";
                        LogFileCreator.appendLog(errCode + " : " + exe.getMessage());
                    }
Run Code Online (Sandbox Code Playgroud)

}

Joa*_*son 5

您在生成的 SQL 中缺少空格;

String sql1 = "INSERT INTO" + ITEM_REFRESH_TABLE + "SELECT * FROM " + 
               ITEM_DETAIL_TABLE;
Run Code Online (Sandbox Code Playgroud)

...生成 SQL;

INSERT INTORefreshItemSELECT * FROM itemDetail
          ^^         ^^ note the missing spaces.
Run Code Online (Sandbox Code Playgroud)

修正后的线应该是;

String sql1 = "INSERT INTO " + ITEM_REFRESH_TABLE + " SELECT * FROM " + 
                       // ^ space here               ^ and here
               ITEM_DETAIL_TABLE;            
Run Code Online (Sandbox Code Playgroud)