안드로이드 개발 질문/답변
(글 수 45,052)
디비클래스를 만들어서 insert 할때 트랜잭션 적용은 시켜놓았어요
서버에서 주기적으로 데이터를 받아와서 저장시키다보니
이미 저장되어져 있는 데이터를 삽입시에 로그캣에 에러메시지가 뜨는데 해결방법이 없나요?
아니면 디비를 전부 로드해서 값을 검사해서 저장하는방법을 택해야할까요?
메모리 낭비가 심할것 같은데.... 좋은 방법이 없을까요?
04-02 18:52:25.966: ERROR/Database(4859): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
04-02 18:52:25.966: ERROR/Database(4859): at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
04-02 18:52:25.966: ERROR/Database(4859): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:66)
04-02 18:52:25.966: ERROR/Database(4859): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1441)
04-02 18:52:25.966: ERROR/Database(4859): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1301)
04-02 18:52:25.966: ERROR/Database(4859): at ko.blackbird.database.DatabaseDAO.insert2(DatabaseDAO.java:54)




전부 로드할 필요 없이 where문으로 중복을 검사하면 됩니다.
try catch로 감싸서 SQLiteConstraintException에 대한 예외처리를 하는 방법도 있습니다.