2014-09-26 5 views
-2

fts 데이터베이스 DATABASE_NAME 및 테이블 FTS_VIRTUAL_TABLE을 만들었습니다.동일한 데이터베이스에서 테이블의 이름을 변경하고 응용 프로그램을 다시 실행하면 "SQLiteException 오류 : 해당 테이블이 없습니다"

값을 삽입하고 선택할 수 있습니다.

내 코드에서 표의 이름을 변경하면 예 : FTS_VIRTUAL_TABLE_NEW 동일한 데이터베이스 DATABASE_NAME 유지 및 응용 프로그램 실행 SQLiteException 오류가 발생합니다. 해당 테이블이 없습니다 : FTS_VIRTUAL_TABLE_NEW. 왜, onCreate 메서드에서 적절한 SQL 문이 존재하는지 궁금합니다. FTS_VIRTUAL_TABLE_NEW를 작성하면 안됩니까?

그러나 테이블의 이름뿐만 아니라 데이터베이스의 이름 (즉, 새 데이터베이스)도 변경하면 모든 것이 작동합니다. 앱은 정상적으로 실행됩니다 (당연히 데이터베이스에는 값이 없습니다).

동일한 데이터베이스를 유지하는 테이블의 이름을 변경할 수없는 이유가 무엇인지 이해할 수 없습니다.

+1

당신의 onCreate를 보여줄 수 있습니까? 또한 앱을 제거하고 다시 시도해 보셨습니까? –

+0

'onUpgrade()'(이미 프로덕션 환경에있는 경우)로 정상적으로 처리하거나 앱을 제거한 후 다시 설치하십시오. –

+0

앱이 아직 생산되지 않아서 앱을 제거하고 다시 설치했습니다! – kkats

답변

0

데이터베이스 스키마를 전혀 변경하지 않은 경우 SQLiteOpenHelper 생성자에서 사용하는 데이터베이스 버전을 증가시키고 onUpgrade 메소드에서 업그레이드 (즉, 테이블 삭제 및 다시 작성 또는 수정)를 처리해야합니다.