-
Room Column 전체 삭제에 대한 고찰프로젝트/영어단어 잠금화면 2021. 12. 2. 13:32
어플리케이션 기능 중 하나로 단어 리스트를 전체 삭제하는 기능을 구현 중이다.
사용자의 시선에서 이 기능은 문제없이 작동되는 것처럼 보이고,
실제 불편함을 느낄 수 있는 부분도 없다.
개발자의 시선에서 이를 바라보면 Auto Increment로 만들어 놓은 Primary Key가 0으로 초기화되지 않는 현상이 있다.
이를 해결하고, 보다 자연스러운 코드를 만들기 위한 고민을 여기에 담고자 한다.
최초 사용하고 있는 것은 clearAllTables()를 이용한 Table 삭제다.
그리고 나와 비슷한 고민을 했던 stackoverflow의 한 글 또한 링크를 남겨두겠다.
그 역시 이러한 방법을 사용했으나 전부 not effect라는 결과가 나온 것 같았다.
최근 수정일?이 2021년 2월이니까 나름 최신일지도 모르겠다.
Android Room - How to reset auto generated table primary key on each app run - Stack Overflow
Android Room - How to reset auto generated table primary key on each app run
I'm using Room in order to persist data. I have a Entity that has an automatically generated (autoGenerate) primary key that mimics a ticket system. On every application run I need this key to star...
stackoverflow.com
------------------------------------------------------------------------------------------------------
2021-12-02
1.
@Query("DELETE FROM wordDB") fun deleteTable()
간단히 Query를 만드어서 DB 전체를 지우는 행동을 했지만 Auto Increment가 진행되는 Primary Key에는 영향이 없었고, 다음 숫자가 Primary Key로 나왔다.
2.
Question Reset auto-increment in Android's Room library (titanwolf.org)
Question Reset auto-increment in Android's Room library
1233 visibility 0 arrow_circle_up 0 arrow_circle_down I created a table using Android's Room library, which stores items of type User. For the ID column, the value is automatically generated by adding the annotation @PrimaryKey(autoGenerate = true) In the
www.titanwolf.org
해당 링크에서 본 후 윗 링크에서
@Query("delete from sqlite_sequence where name='SequenceAction'") fun resetPrimaryKey()
를 만들어 데이터베이스를 지우고, 해당 Query를 실행했으나 역시 Primary Key는 초기화되지 않았다.
'프로젝트 > 영어단어 잠금화면' 카테고리의 다른 글
Android Package (0) 2022.12.09 잠금화면을 만드는 과정 (0) 2021.12.07 Dialog 오류에 대한 해결 (1) 2021.12.02