Eccone un esempio dove prima viene effettuato un test di esistenza del campo e in caso negativo si procede alla sua creazione:
SQLiteDatabase db;
OpenHelper openHelper = new OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
try{
/* check if field exists */
String sql ="select sql from sqlite_master where " +
"tbl_name = 'tbl_example' and sql like '%field_price INTEGER%'";
long lngResult = DatabaseUtils.longForQuery(arg0,sql, null);
}catch(SQLException e){
upgradeToVersion(this.db);
}
private void upgradeToVersion(SQLiteDatabase db) {
try{
/* add an integer field */
db.execSQL("ALTER TABLE tbl_example " ADD " +
"field_price INTEGER");
}catch(SQLException e){}
}