sql >> Databáze >  >> RDS >> SQLite

Je někdy volána metoda onUpgrade?

Pro ty z vás, kteří by chtěli znát přesný okamžik, kdy onUpgrade() je volána, je to během volání buď getReadableDatabase() nebo getWriteableDatabase() .

Pro ty, kterým není jasné, jak zajišťuje, že se to spustí, odpověď zní:Spustí se, když je verze databáze poskytnuta konstruktoru SqLiteOpenHelper je aktualizován. Zde je příklad

public class dbSchemaHelper extends SQLiteOpenHelper {

private String sql;
private final String D_TAG = "FundExpense";
//update this to get onUpgrade() method of sqliteopenhelper class called
static final int DB_VERSION = 2; 
static final String DB_NAME = "fundExpenseManager";

public dbSchemaHelper(Context context) {
    super(context, DB_NAME, null, DB_VERSION);
    // TODO Auto-generated constructor stub
}

nyní k...onUpgrade()

@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    sql = "ALTER TABLE " + fundExpenseSchema.Expense.TABLE_NAME + " ADD COLUMN " + fundExpenseSchema.Expense.FUNDID + " INTEGER";
    arg0.execSQL(sql);
}


  1. Použití Pythonu a MySQL v procesu ETL

  2. Chyba při instalaci Psycopg2 na MacOS 10.9.5

  3. 11 způsobů, jak získat primární klíč v SQL Server (příklady T-SQL)

  4. Numerické funkce MariaDB (úplný seznam)