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:
- ¿Cómo manejas los registros de antememoria de caché en la aplicación para móviles
- Error al cambiar la configuración regional de db '/data/data/my.easymedi.controller/databases/EasyMediInfo.db' a 'en_US'
- Cursor crashing: Índice 0 solicitado, con un tamaño de 0
- Cómo cargar más de 1 MB de datos desde sqlite db al cursor de Android?
- SQlite - Android - Sintaxis de clave extranjera
// 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?
- ¿Cómo obtener contactos en orden de sus próximos cumpleaños?
- Recuperar una lista de todas las tablas de la base de datos
- Mantener los datos SQLite después de la actualización
- Depuración de la base de datos sqlite en el dispositivo
- Depurando ExpandableListView de la base de datos - no funciona
- Necesita un buen método para cambiar (SQLite) tipo de datos de columna
- Sqlite actualiza una columna basada en la cláusula where android
- Cómo obtener entradas nulas de sqlite en android
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");
- Manera correcta de agregar la biblioteca global en android-studio / gradle
- Adición de TextViews al widget de pantalla de inicio mediante programación