마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 디비 테이블이 삭제 되지 않습니다.

0 추천
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = "drop table if exists library";
db.execSQL(sql);
 
String sql2 = "create table library ("+
"_id integer primary key autoincrement," +
"name text, gu text)";
 
db.execSQL(sql2);
}
 
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
 
String sql = "drop table if exists library";
db.execSQL(sql);
 
onCreate(db);
}
 
테이블이 삭제되지 않아서 데이트들이 쌓입니다. ;;;;;
 
도와주세요 ~~~
익명사용자 님이 2013년 8월 26일 질문

1개의 답변

0 추천
 
채택된 답변

최초 db 가 생성될때 drop및 생성을 하셨네요

sqlite db 는 어플의 존재유무와 따로. 존재하게 됩니다.

따라서 어플을 재실행 재설치 등에 onCreate 메소드가 작동하는게 아닐겁니다.

>> db 파일은 그냥 따로 존재함.

onUpgrade 는. 버젼을 1>2>3 식으로 파라미터를 특정한 이벤트에서 올려줄때 작동하는 메소드이긴한데.

이값은 lower 한값은 또 에러를 발생시키므로

저는...onCreate에서는 그냥 db 테이블 생성

따로 메서드를 만들어...SQLiteDatabase를 리턴시켜주는...그곳에서 처리하였습니다.

public SQLiteDatabase Syncopen(){

mDB = this.getReadableDatabase();

mDB.execSQL(드롭);

mDB.execSQL(생성);

return mDB;

}

이런식으로..이해가시나요?

AND chobo (4,690 포인트) 님이 2013년 8월 26일 답변
...