2013-03-24 7 views
0

사용자가 각 튜플에서 몇 가지 값을 변경할 수있는 데이터베이스가 있습니다. 또한 새로운 행을 추가하고 기존 행의 내용을 업데이트 할 수 있기를 원합니다. 내가 지금 사용하는 코드는 내 문제에 대한 해결책이 인의 onUpdate()사용자 데이터를 유지하는 데이터베이스를 업데이트하는 방법

private static class DatabaseHelper extends SQLiteOpenHelper { 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w("dB update", "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS " + MetaData.TABLE); 
     onCreate(db); 
    } 
} 

에 새 데이터베이스를 만듭니다로, 충분하지 않습니다? 또는 최소한 열을 업데이트하지 않고 해당 열의 사용자 값을 유지할 수 있습니까? 미리 감사드립니다.

답변

3

SQLite에서는 ALTER 테이블을 사용하여 편집 할 수 있습니다. (http://www.sqlite.org/lang_altertable.html)

링크에서 볼 수 있듯이 열을 추가하거나 이름을 바꿀 수 있습니다.

는 열을 추가 할

+0

ALTER 표 유용 필요하지만, 내가 원하는 경우 행을 추가하고 (사용자 데이터를 삭제하지 않고 다시) 일부 셀의 값을 수정 그게 다야 느낌? – Mangusto

+1

열 이름의 이름을 바꾸거나 삭제하려는 경우 테이블을 잠시 살펴보고 모든 데이터를 지정된 유형의 개체 배열에 저장하고 현재 테이블을 삭제 한 다음 새 열 이름이있는 테이블을 추가해야합니다 . 적절한 구현에서는 그렇게 자주 필요하지 않아야합니다. 새 행을 추가해야하는 경우 해당 목표의 SQLiteDatabase 클래스에서 적절한 메서드 삽입 및 업데이트 만 사용하면됩니다. –

+0

제안을 주셔서 감사합니다. 아마도 내가 제안한 것을 사용하거나 둘 이상의 표를 사용하게 될 것입니다. – Mangusto

0

트리거와 트랜잭션을 사용하여이를 수행 할 수 있습니다. 또한 SQL 쿼리를 찾아야합니다.

관련 문제