2012-07-05 19 views

Respuesta

3

la forma en que lo he hecho es crear una base de datos separada, copiar todo de la actual a la nueva nueva, soltar la base de datos anterior y copiar la información de la base de datos temporal.

no está seguro de si hay otra manera de hacerlo, pero si hay me encantaría oír hablar de eso

+0

Parece que es mucho más fácil. Uso el SQLiteOpenHelper. Así que nunca se ha llamado al onCreate() si el DB ya existe. Cuando el número de versión aumenta, se llama a onUpdate(). En onUpdate() He agregado mi nueva tabla con "create table if not exists". De la documentación de SQLITE.ORG: Sin embargo, si la cláusula "IF NOT EXISTS" se especifica como parte de la instrucción CREATE TABLE y ya existe una tabla o vista con el mismo nombre, el comando CREATE TABLE simplemente no tiene ningún efecto (y no se devuelve ningún mensaje de error). Ahora la tabla está creada y está bien. – venni

0

Crear una clase que se extiende SQLiteOpenHelper, anular onOpen (SQLiteDatabase db), crear una cadena con la creación de la tabla consulta, y luego use db.execSQL (String str);

4

Parece ser mucho más fácil. Yo uso el SQLiteOpenHelper. Por lo tanto, nunca se ha llamado a onCreate() si el DB ya existe. Cuando el número de versión aumenta, se llama a onUpdate(). En onUpdate() he agregado mi nueva tabla con "create table if not exists". De la documentación de SQLITE.ORG: Sin embargo, si la cláusula "IF NOT EXISTS" se especifica como parte de la instrucción CREATE TABLE y ya existe una tabla o vista con el mismo nombre, el comando CREATE TABLE simplemente no tiene ningún efecto (y no mensaje de error es devuelto). Ahora la mesa está creada y está bien. Método

0

Si desea agregar nueva tabla en la base de datos existente, entonces usted debe hacer esto dentro de ONUPGRADE() como: -

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    if (oldVersion == xyz) { 
     db.execSQL(QUERY_CREATE_TABLE_..........NEW); 
    } 
} 

Aquí xyz es la versión antigua de la base de datos en la que desea agregar nueva tabla.

Y recuerda que para aumentar la Database_Version

Cuando aumentamos la versión de base de datos entonces ONUPGRADE() llamadas de método, y utilizando la condición añadir la tabla.

y también crear nueva tabla dentro onCreate() con las tablas existentes, para instalaciones nuevas como: -

@Override 
public void onCreate(SQLiteDatabase db) { 
     db.execSQL(QUERY_CREATE_TABLE_..........OLD); 
     db.execSQL(QUERY_CREATE_TABLE_..........OLD); 
     db.execSQL(QUERY_CREATE_TABLE_..........NEW); 
} 
Cuestiones relacionadas