티스토리 뷰

목차

    반응형

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


    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

    반응형