본문 바로가기
C++ 200제/코딩 IT 정보

sqlite 테이블 생성, 존재 여부 확인해 중복 방지

by vicddory 2017. 3. 6.

애플리케이션은 동적으로 테이블의 존재 여부를 파악하여 테이블의 생성 여부를 결정해야 합니다. 이런 동작을 하기 위한 로직엔 두 개가 있습니다.


1. sqlite 테이블이 존재하면 건너뛴다 (삭제 후 생성되지 않음)

2. sqlite 테이블이 존재하지 않으면 생성한다 (새롭게 생성됨)


sqlite 테이블 생성, 존재 여부 확인해 중복 방지[안드로이드 DB 테이블 확인, 존재 여부]


1번 경우 예제

1
db.execSQL("create table if not exists month (NumericalValue integer);");
cs


"if not exists"란 명령어로 테이블이 존재하면 생성 과정을 건너뛰게 하였습니다. 예를 들어, 이미 존재하는 테이블일 경우엔 기존 테이블이 계속해서 사용됩니다.


2번 경우 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SQLiteDatabase db = openOrCreateDatabase("FCimsi", MODE_PRIVATE, null);
 
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'"null);
 
    if(c.moveToFirst()){
       for(;;){
        if(c.getString(0).equals("table")){
        } // 처리구간
                         
          if(!c.moveToNext()){
            break;
          }
        }
   } // 테이블 존재 유무 파악 후 생성할 건지 아닌지 결정함
 
db.execSQL("create table if not exists month (NumericalValue integer);");
cs


처리 구간을 통해서 테이블을 새로 생성할지 안 할지 결정할 수 있습니다.

여기까지 간단한 사용법이었고 더 많은 정보는 아래 글들 참고해주세요.


관련 글

구글맵 + 안드로이드 = 실시간 마커 갱신

https://codingcoding.tistory.com/213


MySql JDBC 연결 오류

https://codingcoding.tistory.com/995


Cannot find one or more components. Please reinstall the application

https://codingcoding.tistory.com/396

댓글