안드로이드 개발 질문/답변
(글 수 45,052)
디비랑 연동해서
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
이런식으로 테이블을 생성해주는데요.. 매번 생성이 되는것 같지는않은데..
테이블이 있으면 생성안해주고, 없으면 생성하라는고 이해해야하는지??
좀더 상세히 설명좀 부탁드리겠습니다...
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
이런식으로 테이블을 생성해주는데요.. 매번 생성이 되는것 같지는않은데..
테이블이 있으면 생성안해주고, 없으면 생성하라는고 이해해야하는지??
좀더 상세히 설명좀 부탁드리겠습니다...

2010.01.04 17:03:46

네 그부분은 알고있습니다.
그렇다면 우리가 그 메소드실행될때 마다.. 매번 테이블을 만들어주거나.. 디비를 만들어주는것은 아니잖아요??
디비가 있다면, 테이블이 있다면 생성을 안해준다라는 정의가 어디에 되어있는지 궁금합니다...
그렇다면 우리가 그 메소드실행될때 마다.. 매번 테이블을 만들어주거나.. 디비를 만들어주는것은 아니잖아요??
디비가 있다면, 테이블이 있다면 생성을 안해준다라는 정의가 어디에 되어있는지 궁금합니다...
2010.01.05 13:13:33
ㅎㅎ 저도 전에 이해가 잘 안되던 부분이었거든요~
http://www.androidpub.com/44124 - 요기 회색님 답변보고 알게됐는데
먼저 데이터베이스를 생성해주는 부분은 DBHelper 인스턴스를 생성할때 만들어준 open 함수에서
getWritableDatabase() 함수가 데이터베이스를 생성하거나 열어줍니다.
그리고 테이블을 생성해주는 부분이 님이 올려주신 소스인 OnCreate()함수 부분이구요
DB Adapter class에 보시면 OnUpgrade()함수가 있을꺼에요
이 함수에서도 테이블을 생성해 주는데 OnUpgrade()함수가 OnCreate()함수랑 다른것은
데이터베이스 버전이 올라갔을때에(달라졌을 때) 데이터베이스를 삭제하고 데이터베이스+테이블을 새로 만들어준다는 점입니다..
제가 이해 한데로 설명한거라 틀린부분이 있을지 모르겠네요..
다른분들의 답변도 부탁드려요 : )
먼저 데이터베이스를 생성해주는 부분은 DBHelper 인스턴스를 생성할때 만들어준 open 함수에서
getWritableDatabase() 함수가 데이터베이스를 생성하거나 열어줍니다.
그리고 테이블을 생성해주는 부분이 님이 올려주신 소스인 OnCreate()함수 부분이구요
DB Adapter class에 보시면 OnUpgrade()함수가 있을꺼에요
이 함수에서도 테이블을 생성해 주는데 OnUpgrade()함수가 OnCreate()함수랑 다른것은
데이터베이스 버전이 올라갔을때에(달라졌을 때) 데이터베이스를 삭제하고 데이터베이스+테이블을 새로 만들어준다는 점입니다..
제가 이해 한데로 설명한거라 틀린부분이 있을지 모르겠네요..
다른분들의 답변도 부탁드려요 : )
create table if not exists 테이블명 (컬럼들 정의);
요렇게 되어 있을겁니다.