새 테이블을 만드는 데 약간의 문제가 있습니다. CREATE TABLE 명령을 사용할 때 새로운 테이블이 있어야하지만, 활동을 종료하면 응용 프로그램이 충돌하고 logcat에 테이블이 이미 존재합니다. 기존 테이블이 존재하지 않는다면 CREATE TABLE을 사용하면 새로운 테이블이 형성되지 않고 새로운 테이블을 이전 테이블에 추가하기 만하면 충돌이 발생하지 않습니다. 이게 뭐가 잘못 되었 니? 나에게 이미 존재하는 그것을 제공하지 않고 테이블을 추가하고 싶습니다 그리고 다른 테이블에 행을 추가하지 않고 그것을 추가하고 싶습니다.android sqlite 존재하지 않는 테이블 만들기
SqliteHelper 등급 :
이 일을 해야하는 방법public class MySQLiteHelper extends SQLiteOpenHelper {
public static final String TABLE_NAME = MainActivity.NameName;
public static final String COLUMN_ID = "_id";
public static final String COLUMN_COMMENT = "comment";
public static final String COLUMN_LAT = "lat";
public static final String COLUMN_LONG = "long";
public static final String COLUMN_RADI = "radi";
private static final String DATABASE_NAME = "spraylogs.db";
private static final int DATABASE_VERSION = 1;
public static final String NEWTABLE = "CREATE TABLE "
+ TABLE_COMMENTS + "(" + COLUMN_ID
+ " integer primary key autoincrement, " + COLUMN_COMMENT
+ " text not null," + COLUMN_LAT+ "," + COLUMN_LONG + "," + COLUMN_RADI + ");";
public static final String SaveIt = "CREATE TABLE IF NOT EXISTS "
+ TABLE_COMMENTS + "(" + COLUMN_ID
+ " integer primary key autoincrement, " + COLUMN_COMMENT
+ " text not null," + COLUMN_LAT+ "," + COLUMN_LONG + "," + COLUMN_RADI + ");";
MySQLiteHelper(Context context) {
super(context, context.getExternalFilesDir(null).getAbsolutePath() + "/" + DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(MySQLiteHelper.class.getName(),
"Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + NEWTABLE);
onCreate(db);
}
}
내가하지 이전 테이블에 행을 추가하고있는 경우 왜 CREATE TABLE을 이해하지 않습니다. – johnsonjp34
하지만 행을 추가하는 코드가 있으면 기존 테이블에 추가됩니다. 존재하지 않으면 CREATE는 이전 데이터를 삭제하지 않습니다. –