데이터베이스에 이미 레코드가 있는지 확인하고 그렇지 않은 경우 일부를 처리하고 결국 삽입하고 데이터가 존재하는 경우 데이터베이스에서 데이터를 읽어야하는 Android 앱이 있습니다. SQLiteOpenHelper의 하위 클래스를 사용하여 SQLiteDatabase의 재기록 가능한 인스턴스를 만들고 가져오고 있는데, 테이블이 아직 존재하지 않는 경우 자동으로 테이블 생성을 처리했다고 생각했습니다 (이 작업을 수행하는 코드는 onCreate (... ) 방법).
그러나 테이블이 아직 존재하지 않고 내가 가지고있는 SQLiteDatabase 객체에 대해 실행 된 첫 번째 메서드가 query (...)에 대한 호출 인 경우 내 logcat에 "I / Database (26434) : sqlite returns : error code = 1, msg = no such table : appdata "이며, 확실히 appdata 테이블이 생성되지 않습니다.
이유에 대한 아이디어가 있습니까?
나는 테이블이 존재하는지 테스트하는 방법을 찾고 있습니다 (그렇지 않으면 데이터가 확실히 거기에 없기 때문에 테이블을 만드는 것처럼 보일 때까지 읽을 필요가 없기 때문입니다. 적절하게) 또는 query (...)에 대한 첫 번째 호출에 맞춰 생성되고 비어 있는지 확인하는 방법
편집
이것은 아래 두 가지 답변 후에 게시되었습니다
. 문제를 발견했을 수 있다고 생각합니다. 나는 어떤 이유로 든 동일한 데이터베이스 파일에 액세스하더라도 각 테이블에 대해 다른 SQLiteOpenHelper를 만들어야한다고 결정했습니다. 하나의 OpenHelper 만 사용하도록 해당 코드를 리팩토링하고 onCreate 안에 두 테이블을 모두 만드는 것이 더 잘 작동 할 수 있다고 생각합니다.