Я хочу удалить все строки из таблицы, которые соответствуют идентификаторам в массиве. Я могу сделать это с помощью одного из двух методов (оба работают). Не могли бы вы посоветовать, какой из них лучше?Удалить несколько строк в SQLITE (android)
МЕТОД 1:
public void deleteRec(String[] ids) { //ids is an array
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_NAME, KEY_ID+" IN (" + new String(new char[ids.length-1]).replace("\0", "?,") + "?)", ids);
db.close();
}
МЕТОД 2:
public void deleteRec(String[] ids) { //ids is an array
String allid = TextUtils.join(", ", ids);
SQLiteDatabase db = this.getWritableDatabase();
db.execSQL(String.format("DELETE FROM "+TABLE_NAME+" WHERE "+KEY_ID+" IN (%s);", allid));
db.close();
}
Для удобства чтения я предпочитаю второй метод. Но для производительности я не думаю, что это сильно повлияет. –
читайте о транзакциях sqlite. – meh