この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
既存のデータを引き継ぎつつdbスキーマを変更する方法 [2015/12/11 11:52] sou |
既存のデータを引き継ぎつつdbスキーマを変更する方法 [2016/01/24 19:10] (現在) sou |
||
---|---|---|---|
ライン 5: | ライン 5: | ||
===== SQLiteOpenHelperの実装例 ===== | ===== SQLiteOpenHelperの実装例 ===== | ||
仕様変更によりカラムが増えた例\\ | 仕様変更によりカラムが増えた例\\ | ||
- | // テーブルfooにカラムageを追加し初期値として0を設定する\\ | + | \\ |
+ | テーブルfooにカラムageを追加し初期値として0を設定するSQL\\ | ||
ALTER TABLE foo ADD COLUMN age INTEGER DEFAULT 0\\ | ALTER TABLE foo ADD COLUMN age INTEGER DEFAULT 0\\ | ||
ライン 13: | ライン 14: | ||
* DB ver | * DB ver | ||
* DBスキーマを変更した場合、インクリメントする | * DBスキーマを変更した場合、インクリメントする | ||
- | * | ||
- | * +++++ 変更履歴 +++++ | ||
- | * v1 : ..... 20150101 t.sou | ||
- | * v2 : | ||
- | * .... | ||
*/ | */ | ||
public static final int DB_VERSION = 1; | public static final int DB_VERSION = 1; | ||
ライン 47: | ライン 43: | ||
case 2: | case 2: | ||
db.execSQL("ALTER TABLE "+TABLE_NAME+" ADD COLUMN age INTEGER NOT NULL DEFAULT 0"); | db.execSQL("ALTER TABLE "+TABLE_NAME+" ADD COLUMN age INTEGER NOT NULL DEFAULT 0"); | ||
+ | break; | ||
} | } | ||
} | } | ||
} | } | ||
} | } | ||
- | |||
- | ===== 参考URL ===== | ||
- | ・Android SQLiteデータベースのテーブル変更はこうやる | ||
- | http://begirama.hatenablog.com/entry/2012/08/04/090723 | ||
- | ・How to add new Column to Android SQLite Database? | ||
- | http://stackoverflow.com/questions/8291673/how-to-add-new-column-to-android-sqlite-database | ||
- | ・カラムの追加 | ||
- | http://androidhacker.blog94.fc2.com/blog-entry-63.html | ||
- | ・テーブル名の変更/カラムの追加/テーブルの削除 | ||
- | http://www.dbonline.jp/sqlite/table/index4.html | ||
- | ・ | ||
- | http://yasu-2.blogspot.jp/2012/06/androiddb.html | ||