안드로이드 개발 질문/답변
(글 수 45,052)
테이블을 1개를 추가하기 위해
버전 2에서 3로 바꾸고 했는데(한번은 컬럼 추가로 1에서2로 변경한 이력이 있습니다.)
계속 Can't upgrade read-only database from version 2 to 3: 이것이 떨어지네요..
도대체 뭐가 문제인지 모르겠습니다.
아래 소스 코드입니다.
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "member.db";
private static final int DATABASE_VERSION = 3;
private static final String CREATE_MEMBER_TABLE =
"CREATE TABLE IF NOT EXISTS MT_MEMBER (" +
"EMAIL TEXT PRIMARY KEY ," +
"PASSWORD TEXT," +
"MOBILE TEXT," +
"NAME TEXT," +
"JENDER TEXT," +
"AUTO_YN TEXT" +
");";
private static final String CREATE_MEMBER_FILE_TABLE =
"CREATE TABLE IF NOT EXISTS MT_MEMBER_FILE (" +
"FILE_INDEX TEXT PRIMARY KEY ," +
"MEMBER_EMAIL TEXT PRIMARY KEY ," +
"FILE_NAME TEXT," +
"FILE_TYPE TEXT," +
"FILE_PATH TEXT," +
"FILE_ORIGIN_NAME TEXT," +
"FILE_SIZE INTEGER," +
"CREATE_DATE TEXT" +
");";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// Create the table
db.execSQL(CREATE_MEMBER_TABLE);
db.execSQL(CREATE_MEMBER_FILE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("drop table if exists MT_MEMBER");
db.execSQL("drop table if exists MT_MEMBER_FILE");
onCreate(db);
}
@Override
public void onOpen(SQLiteDatabase db) {
// TODO Auto-generated method stub
super.onOpen(db);
}
}
잘못된 부분이 있나요???




자답입니다.
SQLite에서는 PK를 두개이상 지정할수 없더군요..-_-;;