데이터를 넣어 앱을 배포하였는데 다음버전에서 데이터가 추가되거나 삭제되어야 한다면?
데이터베이스 버전을 바꾸고 재배포 하면된다.


package pe.berabue.dbtest;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBManager extends SQLiteOpenHelper {

	public static final String	DB_NAME		= "dbtest.db";
	public static final int		DB_VERSION	= 2;
	
	
	public DBManager(Context context) {
		super(context, DB_NAME, null, DB_VERSION);
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("CREATE TABLE Android( _id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT, price INTEGER);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Cupcake'			, 500		);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Donut'			, 1000		);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Eclair'			, 1500		);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Froyo'			, 10000		);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Ginger bread'	, 100000	);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Honeycomb'		, 999999	);");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("INSERT INTO Android VALUES (null, 'Icecream Sandwich'	, 1	);");
		db.execSQL("INSERT INTO Android VALUES (null, 'Jellybean'			, 2	);");
	}
}
만약 기존의 DB배포 버전이 1이였다면, 재배포 하는 DB의 버전을 2로 올려준다.
그러면 DB의 버전이 바뀌었으므로 DB가 실행될때 자동으로 onUpgrade(); 메서드를 호출한다.
 


2011/07/02 - [Android/Databases] - 데이터베이스 사용하기
 
위 소스에 onUpgrade(); 부분과 DB버전만 변형시켜서 실행해보았다.
7,8번 데이터가 추가된 것을 확인 할 수 있다. 



'Android > Databases' 카테고리의 다른 글

데이터베이스 Transaction 사용하기  (0) 2011.07.26
데이터베이스 검색  (0) 2011.07.13
데이터베이스 삭제 및 갱신  (2) 2011.07.03
데이터베이스 사용하기  (1) 2011.07.02

+ Recent posts