No se puede crear tabla TEMP en Android sqlite

He intentado crear una tabla temporal (sqlite) en Android

Aquí está el fragmento de código:

// No error - But cannot create TEMP table database.rawQuery("CREATE TEMP TABLE IF NOT EXISTS tt1 (unread_message int, target varchar)", null); // Error - android.database.sqlite.SQLiteException: no such table: tt1: , while compiling: INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target database.rawQuery("INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target", null); 

No hay ningún error para la consulta CREAR TEMP TABLE, pero se queja tt1 no existe en la segunda consulta. ¿Estoy creando la tabla TEMP de una manera incorrecta?

Por lo general, no debe utilizar rawQuery para crear tablas y hacer inserciones – intente utilizar SQLiteDatabase#execSQL .

Este ejemplo funciona como mínimo:

  SQLiteOpenHelper dummy = new SQLiteOpenHelper(this, "mobileAppBeginner.db", null, 1) { @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} @Override public void onCreate(SQLiteDatabase db) {} }; SQLiteDatabase db = dummy.getWritableDatabase(); db.execSQL("CREATE TEMP TABLE messages (read_status INTEGER, direction INTEGER, target TEXT)"); db.execSQL("CREATE TEMP TABLE IF NOT EXISTS tt1 (unread_message int, target varchar)"); db.execSQL("INSERT INTO tt1 SELECT count(*), target FROM messages where read_status=0 and direction=1 GROUP BY target"); 
  • Android: Cómo sumar todas las columnas de una base de datos SQLite y devolver 1 variable única
  • Cursor finalizado sin cerrar antes () en ListFragment
  • ¿Cómo insertar datos en la base de datos SQLite en android?
  • ¿Qué se puede hacer sobre el hecho de que Android elimina automáticamente los archivos corruptos de SQLite?
  • Android Eclipse DDMS - No se puede extraer el archivo del dispositivo enraizado
  • ¿Es posible hacer una consulta sin procesar en la base de datos de metales de Android de meta sqlite?
  • Android sqlite: No se pudo cambiar la configuración regional de db en 'zh_CN'
  • Android: SQLite, cursor.moveToNext () siempre devuelve false
  • Tratar con WHERE IN (?) En la consulta de SQLite de SQL
  • IllegalArgumentException: columna no válida
  • Android SQLiteConstraintException: código de error 19: error de restricción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.