誰でも、sqliteopenhelperクラスのonUpgrade()の正しい使い方について助けてください。事前に感謝します。sqliteでのonUpgrade()の使用は何ですか?
答えて
Sqliteopenhelperでは、データベースのバージョンを定義します。データベースのバージョンを変更するとonUpgrade()
が実行されます。 onCreate()
あなたのonUpgradeでは、古いテーブルを削除して新しいテーブルを生成します。
小さな例があります:あなたは、データベースのテーブル要素または列の値を変更したとき
public class BaseDatabaseHandler extends SQLiteOpenHelper {
/********************************************************
* Database
********************************************************/
private static final int DATABASE_VERSION = 4;
private static final String DATABASE_NAME = "test.db";
/********************************************************
* Table names
********************************************************/
protected static final String TABLE_INPUT = "input";
/********************************************************
* Column names
********************************************************/
/* Input*/
protected static final String COLUMN_ID = "id";
protected static final String COLUMN_NAME = "name";
public BaseDatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_INPUT_TABLE =
"CREATE TABLE " + TABLE_INPUT + " ("
+ COLUMN_ID + " LONG PRIMARY KEY, "
+ COLUMN_NAME + " TEXT, "
+ ")";
db.execSQL(CREATE_INPUT_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_INPUT);
onCreate(db);
}
}
親愛なるDteuchertさん、私の古いテーブルのデータについてreply.whatに感謝します。私のアプリケーションを更新すると失われますか?とにかく私のすべてのデータをバックアップすることはありますか?説明してください。 –
ねえ、はい、このデータは失われます。古いデータを何らかの形で保存する関数をプログラムし、 'db.execSQL(" DROP TABLE IF EXISTS "+ TABLE_INPUT);の前にこの関数を呼び出すことができます。 – DTeuchert
、あなたはその変更を反映するために、データを更新するために必要では。他の賢明なテーブルや他の種類のエラーは発生しません。 アプリケーションがすでにアップロードされている場合は、データベースを変更した後、データベースのバージョンを変更し、すべてのすべてのテーブルをonUpdate()メソッドで再作成する必要があります。
- 1. SQLite onUpgrade()フラストレーション
- 2. onUpgrade Sqlite Androidでデータベースを再作成
- 3. Android SQLite onUpgrade =強制終了
- 4. SQLiteデータベース、リリースするバージョン1のonUpgrade
- 5. SQLiteデータベースのonUpgradeメソッドを少し説明したいです
- 6. OnUpgradeの使い方
- 7. Sqliteとは何ですか?
- 8. SQLite - データの編成は何ですか?
- 9. SQLite + RxJavaのベストプラクティスは何ですか?
- 10. SQLiteのシャドウテーブルとは何ですか?
- 11. sqliteロールバックの理由は何ですか?
- 12. Sqliteデータベースonupgrade()はデータベースを更新していません
- 13. SQLiteトリガとは何ですか?
- 14. angularjsで "$$"の使用は何ですか?
- 15. SqliteデータベースonUpgrade()が呼び出されない
- 16. データベースonUpgrade
- 17. PostgreSQLまたはSybaseのテーブルリテラルのSqliteアナログは何ですか?
- 18. プロジェクトの.vsフォルダでSqliteデータベースとは何ですか?
- 19. SQLite DBの最大許容サイズは何ですか?また、PetaPocoをORMとして使用できますか?
- 20. XPathの//と?/の違いは何ですか?の使用は何
- 21. libGLES_CM.soの使用は何ですか?
- 22. zeromqの使用例は何ですか?
- 23. Deployment.Current.Dispatcher.BeginInvoke(()=> {...})の使用は何ですか?
- 24. 0x8915の使用は何ですか?
- 25. カスタムイベントargの使用は何ですか?
- 26. 「寛容」の使用は何ですか?
- 27. OWLの使用例は何ですか?
- 28. デスクトップアプリケーションの構成データにSQLite(またはDBMS)をXMLで使用する利点は何ですか?
- 29. SQLite用のクラスでList of Stringを使用できますか?
- 30. SparkContextコンストラクタのappNameとは何ですか?その使用法は何ですか?
このリンクを確認してください。http://developer.android.com/intl/ru/reference/android/database/sqlite/SQLiteOpenHelper.html#onUpgrade(android.database.sqlite.SQLiteDatabase、int、int) ) –
'onUpgrade()'に特有の問題は何ですか? – laalto
実際に私は、ローカルデータベースに保存された多くのデバイスを持つホームオートメーションアプリケーションを持っています。私は、開発者が行った更新があれば、それがローカルデータベースにどのように反映されているのか疑いがあります。すべてのテーブルが交換された場合、私はすべてのデータを失うことになります。それでもバックアップするにはどうしますか?私を助けてください。 –