2014-11-27 2 views

답변

2

SQLiteHelper 클래스의 onUpgrade() 메서드에서 ALTER TABLE 함수를 사용하여이 작업을 수행 할 수 있습니다.

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // If you need to add a column 
    if (newVersion > oldVersion) { 
     db.execSQL("ALTER TABLE table_name ADD COLUMN new_column INTEGER DEFAULT 0"); 
    } 
} 

당신은 SQLiteOpenHelper 클래스를 확장하는 클래스의 생성자에있을 것이다, 아래의 코드에서 버전 번호를 증가하는 것을 잊지 마세요, Alter Table

게다가 구문이 링크를 참조 할 수 있습니다 .

super(Context context, String name, CursorFactory factory, int newVersion) 
+0

답장을 보내 주셔서 감사합니다. 나는 당신이 의미하는 것을 본다.하지만 나는 그 문제를 옳게 표현하지 않았다고 생각한다. 이제 mySQLiteHelp.JAVA를 만들었습니다.이 파일에서이 열을 모두 정의해야합니다. 하지만 사용자가 입력 한 변수 (이름)를이 mySQLLiteHelp.JAVA 파일에 전달하고이를 열로 설정하려면 어떻게해야합니까? 많이 감사합니다. –

0

사용자 입력에 따라 테이블을 동적으로 변경하는 것이 이상적인 방법은 아닙니다. 대신 이것을 해결하기 위해 키 값 쌍을 저장할 수있는 유연한 테이블을 생성하십시오.

키는 사용자가 입력 한 변수 (새 열 이름을 만들려고 함) 일 수 있으며 값은 저장해야하는 콘텐츠입니다.

관련 문제