He seguido un tutorial estándar para compilar una base de datos con Android. Creé una clase llamada DbHelper que amplía SQLiteOpenHelper. He redefinido el controlador de creación para ejecutar una cadena.Ejecutando varias declaraciones con SQLiteDatabase.execSQL
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DbDefinitions.DB_CREATE);
}
DbDefinitions.DB_CREATE es una cadena estática que he creado.
public static final String TABLE_MESSAGES = "messages";
public static final String TABLE_FRIENDS = "friends";
public static final String STATE_OK = "STATE_OK";
public static final String DB_CREATE =
"create table " + TABLE_MESSAGES + " (_id integer primary key, user_id integer not null, created_on integer, subject text not null, summary text not null, messagetext text null, read integer not null, status text not null default '" + STATE_OK + "'); " +
"create table " + TABLE_FRIENDS + " (_id integer primary key, user_id integer not null, friend_id integer not null, created_on integer, status text not null default '" + STATE_OK + "');";
Me gustaría utilizar 1 cadena para ejecutar varias instrucciones SQL. ¿Cómo puedo hacer esto ya que SQLiteDatabase.execSQL solo permite 1 declaración?
Gracias, justo lo que necesitaba funciona como un encanto. –
que pasa si el ';' está dentro de un campo de texto? –
El **; ** al final de las sentencias de SQL es completamente inútil. –