안드로이드 개발 질문/답변
(글 수 40,700)
테이블을 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를 두개이상 지정할수 없더군요..-_-;;