Удалить последнюю строку в таблице Android
Мой вопрос довольно прост. У меня есть таблица с, скажем, х строк, с каждым идентификатором, но я не знаю, сколько у меня строк. Теперь я хочу удалить последнюю строку в моей таблице по какой-то причине... Есть ли простой способ сделать это в Android? Я пытался использовать last_insert_rowid в моем предложении where... но пока не повезло... Есть идеи сделать это с помощью инструментов базы данных sqlite для Android?
1 ответ
Я предполагаю, что last_insert_rowid означает, что вы говорите о БД.
DELETE FROM test WHERE id = (SELECT MAX(id) FROM test);
Я видел этот пост и думаю, что смогу помочь, если у кого-то возникнет такая же проблема.
Я перевел курсор в последнюю строку и получил его идентификатор, превратив его в строку для запроса db.delete.
Вы можете иметь одну строку в базе данных, но ее ID может быть больше 1.
Для моего приложения я использовал Contract
класс и реализован BaseColumns
(так же, как на веб-сайте разработчика Android)
Надеюсь, это помогло ^^
//go to the last row
cursor.moveToLast();
//get the index ID of the last row
int lastItemId = cursor.getInt(cursor.getColumnIndex(ShiftsContract.Entry.COLUMN_NAME_ID));
//turn it into a string
String slastItemId = String.valueOf(lastItemId);
//define the column from which you want to delete
String where = ShiftsContract.Entry.COLUMN_NAME_ID + "=?";
//from the selected column delete the retrieved ID
String[] args = {slastItemId};
db.delete(ShiftsContract.Entry.TABLE_NAME, where, args);