2016-06-27 2 views
0

Итак ... Это мой код:Удалить последний элемент в SQLite БД Таблице

public static final String DATABASE_NAME = "MY_DATABASE"; 
public static final String DATABASE_TABLE = "MY_TABLE"; 
public static final int DATABASE_VERSION = 1; 
public static final String KEY_CONTENT = "Content"; 
public static final String KEY_ID = "_id"; 

private static final String SCRIPT_CREATE_DATABASE = "create table " 
     + DATABASE_TABLE + " (" + KEY_ID 
     + " integer primary key, " + KEY_CONTENT 
     + " text not null);"; 
private SQLiteHelper sqLiteHelper; 
private SQLiteDatabase sqLiteDatabase; 
private Context context; 

public SQLiteAdapter(Context c) { context = c; } 

public int delete() { 
    return sqLiteDatabase.delete(DATABASE_TABLE, KEY_ID , null); 
} 

Там нет сообщений об ошибке в журнале. Только перерыв, когда я запускаю его в своем телефоне. Я использовал множество решений. Он не хочет работать ((( Может кто-нибудь сказать, как удалить последний элемент в моей таблице?

ответ

2

Получить последний вставленный элемент с Select запроса ограничивается одним элемента и заказанного ид DESC.

вы можете также цикл Повсеместно все элементы и переопределение ДАННЫХ до конца, но не намного эффективнее, если ваша БД имеет много DATAS.

Наконец, вы можете использовать

SELECT last_insert_rowid() 

только после того, как вы вставите что-то и сохранить id как переменная класса.

https://www.sqlite.org/c3ref/last_insert_rowid.html

1

Второй параметр SqliteDatabase.delete() методы является ИНЕКЕМ. Вы не перешли к пункту delete(), не сказали, что хотите удалить. В основном вы получаете этот SQL-запрос:

DELETE FROM DATABASE_TABLE WHERE KEY_ID; 

@Alexandre Martin дал вам несколько вариантов, как получить последний идентификатор.

Смежные вопросы