나는 잠시 동안이 사이트를보고 있었지만 대답을 찾지 못했습니다. 이미 테이블에있는 데이터를 대량 업데이트하려고합니다. 행 ID에 대해 특정 조건이 다시 설정 될 때 설정해야하는 열이 하나 있습니다. 여기에 하나의 방법이 있지만 이것을 더 효율적으로 만들고 대량으로 만들고 싶습니다. 우리 데이터베이스는 Provider에 없으므로 Helper 클래스 만 사용합니다.대량 업데이트 데이터베이스
public void markUnavailable(int myId) {
SQLiteDatabase db = this.getWritableDatabase();
String sql = "UPDATE " + MYTABLE + " SET " + Col.IS_AVAILABLE + "= 0"+ " WHERE " + Col.MY_ID + "=" + myId;
db.execSQL(sql);
db.close();
}
대량 업데이트를 수행하기 위해 myIds 배열을 전달하고 싶습니다. 모든 열 데이터에 액세스 할 수 없으며 너무 많은 코드 변경으로 인해이 코드를 전달하지 않으므로 Insert 또는 Replace 문을 수행 할 수 없습니다. 시도 UPDATE tablename SET column=0 WHERE ID IN (...)
public void markUnavailable(int[] myId) {
// ????
/// need some way to loop through and update in bulk
}
이렇게하면 배열을 문자열로 구문 분석해야하며 임의의 길이 배열로 인해 SQL 문이 컴파일되지 않을 수 있습니다. –
@LS_dev : 그런 다음 100 개의 항목마다 하나의 UPDATE를 수행하십시오. – CommonsWare
더 많은 구문 분석이 필요합니다. 나는 그것이 정상적인 데이터베이스 접근 방식이라고 생각하지 않는다. –